一个将解析00.00的正则表达式

Jam*_*add 6 regex

我正在尝试创建一个接受以下值的正则表达式:

  • (空白)
  • 0
  • 00
  • 00.0
  • 00.00

我找到了([0-9]){0,2}\.([0-9]){0,2}对我说"数字0到9出现0到2次,然后是'.' 字符(应该是可选的),后面跟着数字0到9,出现0到2次.如果只输入2位数,则为'.' 没有必要.这个正则表达式有什么问题?

Joa*_*uer 15

你没有使点可选:

[0-9]{0,2}(\.[0-9]{1,2})?
Run Code Online (Sandbox Code Playgroud)

  • 一个警告:这个正则表达式将匹配任何东西,因为所有部分都是可选的.如果你要求它匹配"a",它将成功,因为它匹配"a"之前的空白区域.也许你应该使用^和$来锚定正则表达式(因为你想要匹配一个空字符串). (3认同)
  • Tim指出,让每个元素都是可选的并不是在满足正则表达式的字符串集中包含空字符串的好方法,因为它会打开每个字符串的闸门.更好的是使用这样的策略:`^ $ | foo` (2认同)