如何在正则表达式中排除逗号(,)?

时间:2018-03-22 06:06:41

标签: regex

我来到了我只想要[0-9或。]的场景。为此,我使用了这个正则表达式:

[0-9.]$

这个正则表达式接受0-9和。 (小数点)。但是当我写这样的东西时

1,1 

它也接受逗号(,)。我怎么能避免这个?

3 个答案:

答案 0 :(得分:1)

一旦你想要一种解析数字的方法(你说点是小数),也许你不希望你的字符串以点开头,不以它结尾,并且必须只接受一个点。如果是这种情况,请尝试使用:

^(\d+\.?\d+|\d)$

其中:

  • \d+代表任何数字(一个或多个)
  • \.?代表零或一个字面点
  • \d代表任何数字(只有一个)

您可以看到它有效here

或者您可能希望接受以点开头的字符串,通常被0视为整数部分,在这种情况下,您可以使用^\d*\.?\d+$

答案 1 :(得分:1)

此正则表达式[0-9.]$由与行$末尾的数字或点匹配的字符类组成。

如果你只想匹配一个数字或一个点,你可以添加^来断言一行开头的位置:

^[0-9.]$

如果您想匹配一个或多个数字,可以使用一个点和一个或多个数字:

^[0-9]+\.[0-9]+$

答案 2 :(得分:0)

这个正则表达式可以帮助你:

/[0-9.]+/g

接受0到9位数和点(。)。

<强>解释

匹配[0-9.]+

下方列表中的单个字符

+量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)

0-9 0(索引48)和9(索引57)范围内的单个字符(区分大小写)

.匹配该角色。从字面上看(区分大小写)

您可以对其进行测试here

enter image description here