【发布时间】:2018-05-25 08:53:01
【问题描述】:
我尝试了许多示例来禁止单个数字 0。最接近的工作是[^0],但匹配20、30 等。我只想匹配0。
【问题讨论】:
-
请提供示例。例如,
"0"、"0.0"、"-0"、"+0"、"00"、"zero: 0"、"0-0-0"、" 0 "(空格)中的哪一个应该匹配?
我尝试了许多示例来禁止单个数字 0。最接近的工作是[^0],但匹配20、30 等。我只想匹配0。
【问题讨论】:
"0"、"0.0"、"-0"、"+0"、"00"、"zero: 0"、"0-0-0"、" 0 "(空格)中的哪一个应该匹配?
使用开始和结束锚点来匹配整个输入为零:
^0$
或者要匹配字符串中的单个零,请使用单词边界:
\b0\b
不允许在输入中使用单独的零,在否定前瞻中使用上述内容。
^(?!.*\b0\b).*
【讨论】:
如果您不希望匹配零,但希望允许使用正数和负数。这使用锚点 ^ 和 $ 来断言字符串的开始和结束。
不使用锚点,您可以使用单词边界\b:
这将匹配一个可选的加号或减号 [+-]?,一个从 1 到 9 的数字 [1-9],因此它不匹配一个零后跟零次或多次数字 [0-9]*