Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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_.net 3.5 - Fatal编程技术网

C# 正则表达式,用于逗号分隔的数字或仅用于数字

C# 正则表达式,用于逗号分隔的数字或仅用于数字,c#,regex,.net-3.5,C#,Regex,.net 3.5,这是我们的后续行动。要求已经改变了,我正在寻找一些帮助,为逗号分隔的数字或没有逗号的数字提供正则表达式。下面是示例输入,以及一些失败的尝试 感谢您的帮助 可接受的输入: 1,234,567 1234567 1234,567 1,234567 不可接受的输入: 1,234,567 1234567 1234,567 1,234567 一些失败的尝试: ^(\d{1,3}(?:[,]\d{3})*)|((\d)*)$ ^\d{1,3}((?:[,]?\d{3})*|(?:[,]\d{3})*)

这是我们的后续行动。要求已经改变了,我正在寻找一些帮助,为逗号分隔的数字或没有逗号的数字提供正则表达式。下面是示例输入,以及一些失败的尝试

感谢您的帮助

可接受的输入:

1,234,567
1234567
1234,567
1,234567
不可接受的输入:

1,234,567
1234567
1234,567
1,234567
一些失败的尝试:

^(\d{1,3}(?:[,]\d{3})*)|((\d)*)$
^\d{1,3}((?:[,]?\d{3})*|(?:[,]\d{3})*)$
原创成功:

^\d{1,3}(?:[,]\d{3})*$
只需在末尾添加一个“或一个或多个数字”:

^(?:\d{1,3}(?:[,]\d{3})*|\d+)$
我认为你第一次几乎是对的,只是没有正确地匹配所有括号。

试试这个:

^\d{1,3}(?:(?:,\d{3})+|\d*)$
这将匹配以一到三个数字开头的任何序列,后跟

  • 逗号的一段或多段后跟三位数字,或
  • 零个或多个数字

为什么不先使用()而不是正则表达式?

请查看“它是一个数字吗?”问题的最终处理方法,包括允许正确使用逗号分隔的数字组。

我注意到,所有这些都是正则表达式的第一位允许使用基于“0”的数字。例如,号码:

0,123,456
将使用接受的答案进行匹配。我一直在使用:

((?<!\w)[+-]?[1-9][0-9]{,2}(?:,[0-9]{3})+)
我有一组奇怪的数字要匹配(带逗号的整数、带空格的整数和不带逗号的整数),所以我使用非常严格的正则表达式来捕获这些组


不管怎样,还是要好好想想

+1用于正确处理正确数量的逗号组。寻求更广泛的讨论和阐述。