不匹配负整数

时间:2019-03-02 11:30:15

标签: regex

regex101

测验

您能帮助我验证输入内容,并且只匹配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。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

您可以使用向后搜索

\b(?<!-)(?:\d{1,2}|100)\b

Demo

答案 1 :(得分:1)

您可以在正则表达式前使用(?<!-)否定连字符。另外,我认为您可以缩短正则表达式。试试这个正则表达式,

(?<!-)\b(?:100|\d?\d)\b

Demo

注意:这也是您在测验中所需的最短正则表达式。

答案 2 :(得分:0)

尝试一下:

\b(?<![-])([0-9][0-9]?|100)\b

DEMO