由分号分隔的数字的正则表达式

时间:2017-04-12 10:45:11

标签: .net regex

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

这样的事情:

1,2,3,5,7,10

列表的大小可能很长。

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

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

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

1 个答案:

答案 0 :(得分:1)

对于第一个表达式,以下模板是合适的:

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}。

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