2

我有这个数学正则表达式:

  • 字符串以零 + 空格 + 其他任何内容开头
  • 字符串为零

    "0 fkvjdm" // Must Match
    "0" // Must match
    "0.56" // NOT match
    

这是我正在使用的正则表达式:

^([0]$|([0]\s+.))

有没有办法改进它?或者,它有错误吗?

非常感谢你的帮助。

环境

  • VS 2010 .net 4
4

2 回答 2

5
  • 首先,不需要放入0字符类。
  • 其次,您的正则表达式在空格后不会匹配多个字符。因为您在dot上没有任何量词-.在您的正则表达式的第二部分。要匹配空格后的更多字符,您应该使用.*(0 or more) 或.+(1 or more)。

为了提高清晰度,您可以在此处使用可选量词:

^0(\s+.*)?$
于 2013-09-18T16:23:31.090 回答
1

似乎第二个字符是导致匹配失败的原因。如果第二个字符是句点,则不匹配;否则匹配。?!表示如果匹配成功,则整个匹配失败。因此,如果第二个字符是句点,它将失败。

^0(?!\.).*
于 2013-09-18T17:00:35.417 回答