正则表达式 - 检查字符串是否以零+空格或零单独开始

时间:2013-09-18 16:21:25

标签: c# regex

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

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

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

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

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

有没有办法改善它?或者,它有一个错误吗?

非常感谢你的帮助。

环境

  • VS 2010 .net 4

2 个答案:

答案 0 :(得分:4)

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

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

^0(\s+.*)?$

答案 1 :(得分:0)

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

^0(?!\.).*