匹配数字与正则表达式 - 仅限数字和逗号

39 浏览
0 Comments

匹配数字与正则表达式 - 仅限数字和逗号

我无法构建一个适用于以下示例值的正则表达式:\n

123,456,789
-12,34
1234
-8

\n你能帮帮我吗?

0
0 Comments

问题:

在匹配数字与正则表达式时,只允许使用数字和逗号出现。如何解决这个问题?

解决方法:

可以使用以下正则表达式来匹配数字与逗号的组合:

^-?\d{1,3}(,\d{3})*(\.\d\d)?$|^\.\d\d$

该正则表达式允许以下情况出现:

1
12
.99
12.34 
-18.34
12,345.67
999,999,999,999,999.99

该正则表达式的含义是:

- ^-?\d{1,3}(,\d{3})*(\.\d\d)?$:以可选的负号开头,接着是1到3个数字,然后是可重复的逗号和3个数字的组合,最后可以有小数部分,小数部分由一个小数点和两个数字组成。

- |:或者

- ^\.\d\d$:以一个小数点开头,然后是两个数字。

这个正则表达式可以匹配包含数字和逗号的字符串,例如上述示例中的各种情况。使用这个正则表达式,可以方便地筛选出需要的数字与逗号组合的字符串。

0
0 Comments

问题的出现原因:问题是由于用户提出的问题不清晰和模糊引起的。用户没有明确说明他想要允许什么样的数字格式。

解决方法:根据用户的需求,可以采取以下几种解决方法:

1. 使用正则表达式来匹配只包含数字和逗号的字符串:^[-,0-9]+$。如果还想允许空格,可以使用:^[-,0-9 ]+$

2. 如果想要允许合法的数字格式,可以使用以下正则表达式:^([-+] ?)?[0-9]+(,[0-9]+)?$。这个正则表达式可以匹配带有正负号、逗号分隔的数字。

3. 还可以使用.NET的数字解析器来处理数字字符串。使用double.Parse(yourString, NumberStyle.Number)函数可以将字符串解析为数字。如果解析失败,会抛出FormatException异常。

但是由于用户提问的问题不明确,以上解决方法都只是根据猜测给出的可能的答案。用户需要明确说明他的需求,才能给出更准确的解决方法。

0
0 Comments

“Matching numbers with regular expressions — only digits and commas”这个问题的出现是因为人们对“数字”的定义有很多不同的理解。文章中列举了很多不同的例子,提出了一系列关于“数字”的问题,包括正负号,小数点,分数,指数,罗马数字,IP地址等等。这些例子说明了“数字”的定义是非常复杂和多样化的。

为了解决这个问题,文章提供了一系列的正则表达式模式,每个模式都有一个编号和解释。这些模式可以用来匹配不同类型的数字。文章还讨论了每个模式的优缺点,并提供了一些代码示例。最后,文章提出了一种更简洁和可维护的模式定义方法,用于处理更复杂的数字匹配。

这篇文章通过提出问题,讨论不同的数字定义,并提供解决方法,帮助读者更好地理解和处理数字匹配的问题。这对于使用正则表达式进行数字匹配的人来说是非常有帮助的。

0