Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
.net 用分号分隔的数字的正则表达式_.net_Regex - Fatal编程技术网

.net 用分号分隔的数字的正则表达式

.net 用分号分隔的数字的正则表达式,.net,regex,.net,Regex,您好,我如何为用分号分隔的数字列表编写正则表达式 大概是这样的: 1,2,3,5,7,10 列表的大小可以很长 此外,我需要正则表达式仅用于十进制数(例如2.04(最多6位小数),或仅用于格式2或某些整数 但没有、或任何其他值 这是我的解决方案,但在.net验证中不适用 [0-9]+(\.)[0-9]{0,10}|[0-9]+ 对于第一个表达式,以下模板适用: var input = @"The quick 1,2,3 brown fox4,5,6 jumps over the lazy d

您好,我如何为用分号分隔的数字列表编写正则表达式

大概是这样的:

1,2,3,5,7,10
列表的大小可以很长

此外,我需要正则表达式仅用于十进制数(例如2.04(最多6位小数),或仅用于格式2或某些整数 但没有
或任何其他值

这是我的解决方案,但在.net验证中不适用

[0-9]+(\.)[0-9]{0,10}|[0-9]+

对于第一个表达式,以下模板适用:

var input = @"The quick 1,2,3 brown fox4,5,6 jumps over the lazy dog";
var pattern = @"([0-9],)+[0-9]";
var matches = Regex.Matches(input, pattern);
//matches: {1,2,3} {4,5,6}
您没有在输入行中指定约束和可能的值,因此我提供了一个简单的模板

十进制数的模式:

var input = @"The quick 1,2,3 brown fox4,5,6 jumps over the lazy dog7.0,8.1,9.3";
var pattern = @"([0-9])+(\.[0-9]{1,6})?";
var matches = Regex.Matches(input, pattern);
// matches: {1} {2} {3} {4} {5} {6} {7.0} {8.1} {9.3}
如果您想允许像1这样的数字,那么您可以将{1,6}更改为{0,6}


在.9格式中通常有十进制数,在这种情况下,您可以使用
([0-9]+(\.[0-9]{0,6});([0-9]?(\.[0-9]{1,6}))

是否需要验证字符串,如
1,2,3,5,7,10
1234.345453
?但不验证
12.344,32.45554
1,3.45,45
?检查。确定第一个表达式适用于由列(1,2,3,5,6)分隔的整数,如示例中所示。未连接到第一个表达式的第二个表达式适用于十进制数1^[0-9]+(?:,[0-9]+)*$2)
^[0-9]+\.[0-9]{0,6}$
(可能
^[0-9]+\.[0-9]{1,6}$
^[0-9]*.[0-9]{1,6}$
会更好。不要在.NET正则表达式中使用
\d
(特别是用于验证),它匹配的次数超过
[0-9]
。您能提供好输入和坏输入以及预期匹配的示例吗?Wiktor您的答案也正确。谢谢:)