标签: regex
您能帮助我验证输入内容,并且只匹配0到100范围内的正整数吗?我想检索的字符串中可以有几个数字。试用以下示例字符串:
Sam has 200 apples. He gives Todd 20 and Mary 125. and The weather is -5 C today, but will be +5 C tomorrow.
我尝试了\b(100|\d\d|\d)\b,但是无法摆脱-5。我该如何解决这个问题?
\b(100|\d\d|\d)\b
-5
答案 0 :(得分:2)
您可以使用向后搜索
\b(?<!-)(?:\d{1,2}|100)\b
Demo
答案 1 :(得分:1)
您可以在正则表达式前使用(?<!-)否定连字符。另外,我认为您可以缩短正则表达式。试试这个正则表达式,
(?<!-)
(?<!-)\b(?:100|\d?\d)\b
注意:这也是您在测验中所需的最短正则表达式。
答案 2 :(得分:0)
尝试一下:
\b(?<![-])([0-9][0-9]?|100)\b
DEMO