Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则数问题_C#_Regex - Fatal编程技术网

C# 正则数问题

C# 正则数问题,c#,regex,C#,Regex,这是我的数字数据编号正则表达式: \d+(.\d+)+(,\d+) 但现在我有一个问题,数字3或30不再有效。什么必须是我的正则表达式,数字3和40也将通过 Thx 正则表达式中的+表示“至少一个”,而*表示“零或多个”,而?表示“一个或无” 此外,必须将句点转义为\。,否则字符在regex中是一个特殊字符,表示“任何单个字符” 如果您想确保编号中的总是以3为一组将数字分隔开,您可以使用此选项({x}语法表示“恰好x个重复”): 或者,为了始终强制使用数千个分隔符,您可以使用以下方法({x,y

这是我的数字数据编号正则表达式:

\d+(.\d+)+(,\d+)
但现在我有一个问题,数字3或30不再有效。什么必须是我的正则表达式,数字3和40也将通过

Thx

正则表达式中的
+
表示“至少一个”,而
*
表示“零或多个”,而
表示“一个或无”

此外,必须将句点转义为
\。
,否则
字符在regex中是一个特殊字符,表示“任何单个字符”

如果您想确保编号中的
总是以3为一组将数字分隔开,您可以使用此选项(
{x}
语法表示“恰好x个重复”):

或者,为了始终强制使用数千个分隔符,您可以使用以下方法(
{x,y}
语法的意思是“从x到y的任意重复):

正则表达式中的
+
表示“至少一个”,而
*
表示“零或多个”,而
表示“一个或无”

此外,必须将句点转义为
\。
,否则
字符在regex中是一个特殊字符,表示“任何单个字符”

如果您想确保编号中的
总是以3为一组将数字分隔开,您可以使用此选项(
{x}
语法表示“恰好x个重复”):

或者,为了始终强制使用数千个分隔符,您可以使用以下方法(
{x,y}
语法的意思是“从x到y的任意重复):


如果您真正想要的是
作为千位分隔符,而
作为十进制分隔符,请尝试以下操作:

\d{1,3}(\.\d{3})*(,\d+)?

如果您真正想要的是
作为千位分隔符,而
作为十进制分隔符,请尝试以下操作:

\d{1,3}(\.\d{3})*(,\d+)?

那么你想要一个匹配1和3.000以及3.000,5的正则表达式

如果不想捕获结果,应执行以下操作:

[.\d]+(,\d+)?
但请记住,这并不是很准确,因为它也匹配2.0.0,12,并且还应该包括一个加减检查:

^(\+|-)?[.\d]+(,\d+)?
在C#中,你可以用

double result;
bool isDouble = Double.TryParse("3.000,5", Globalisation.CultureInfo.InvariantCulture);

那么你想要一个匹配1和3.000以及3.000,5的正则表达式

如果不想捕获结果,应执行以下操作:

[.\d]+(,\d+)?
但请记住,这并不是很准确,因为它也匹配2.0.0,12,并且还应该包括一个加减检查:

^(\+|-)?[.\d]+(,\d+)?
在C#中,你可以用

double result;
bool isDouble = Double.TryParse("3.000,5", Globalisation.CultureInfo.InvariantCulture);

数字是什么?你是说十进制吗?您是如何获得当前Regexp的?(它看起来离你需要的东西很远)。您希望接受什么格式,有样品吗?数字(或数字“dnumber”)是什么?你是说十进制吗?您是如何获得当前Regexp的?(它看起来离你需要的东西很远)。你想要接受什么格式,你有样本吗?我认为OP更多的是尝试用标准的欧洲格式解析数字,
是十进制分隔符,
是数字分组标记。我认为OP更多的是尝试用标准的欧洲格式解析数字,
是十进制分隔符,
是数字分组标记。您的最后一个将匹配
12000.423
;它没有强制第一个块有数千个分隔符。@马克:是的,这是故意的(为了匹配像
12000,34这样的数字)。但是如果需要强制使用数千个分隔符,那么只需将前导的
\d+
改为
\d{1,3}
即可。确定:)只需签入即可。我给了你+1。你的最后一个将匹配
12000.423
;它没有强制第一个块有数千个分隔符。@马克:是的,这是故意的(为了匹配像
12000,34这样的数字)。但是如果需要强制使用数千个分隔符,那么只需将前导的
\d+
改为
\d{1,3}
即可。确定:)只需签入即可。反正我给了你+1。