-1
嗨,我该如何写一个以分号分隔的数字列表的正则表达式?用分号分隔的数字的正则表达式
事情是这样的:
1,2,3,5,7,10
列表的大小可能会很长。
此外,我需要为十进制数只(例如2.04(最多6位小数的正则表达式),或者只在格式2或某一整数 但没有,
或任何其他值。
这里是我的解决方案,但我在.NET验证
[0-9]+(\.)[0-9]{0,10}|[0-9]+
嗨,我该如何写一个以分号分隔的数字列表的正则表达式?用分号分隔的数字的正则表达式
事情是这样的:
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}
您没有在输入行中指定约束和可能的值,所以我提供了一个简单的模板。因此,对于输入“快速1,2,3棕色狐狸4,5,6跃过懒狗7.0,8.1,9.3”结果将是{1,2,3} {4,5,6 } {0,8} {1,9}
模式的十进制数:
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}。
经常有形式0.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'?检查[此演示](http://regexstorm.net/tester?p=%5e%28%3f%3a%5b0-9%5d%2b%5c.%5b0-9%5d%7b0%2c6%7d%图7c%5b0-9%5D%2B%28%3F%3A%2C%5b0-9%5D%2B%29 *%29%5CR%3F%24与I = 1%2C2 2C3%%2C5%2C7%2C10%0D %0a12.123456%0D%0a12.1234567%0D%0a12.123456%2C12%0D%0a12.12%2c123.2&O = M)。 –
好的第一个表达式是用于由列(1,2,3,5,6)分隔的整数数字,如示例中所示。没有连接到第一个表达式的第二个表达式是十进制数 – user2171512
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]'多匹配。 –