Regex 如何使用正则表达式获取1-100

Regex 如何使用正则表达式获取1-100,regex,Regex,我想得到的是: Hello, 0 ( dont get ) Hello2, 100 ( get ) hello3, 82 ( get ) hello< 132 ( dont get ) 你好,0(不明白) Hello2,100(得到) hello3,82(get) 你好0&&N0&&N0&&NH这是怎么工作的?我能读一点,但是?!\d?那到底是什么?[a-zA-Z]{1255},([1-9]{1,3}(?!\d!\100)对我来说很好,但仍然得到132等。

我想得到的是:

    Hello, 0 ( dont get )
    Hello2, 100 ( get )
    hello3, 82 ( get )
    hello< 132 ( dont get )
你好,0(不明白)
Hello2,100(得到)
hello3,82(get)
你好<132(不明白)
到目前为止,我已经制作了类似的东西:

[a-zA-Z]{1,255},([0-9]{1,3})(?<![0])
[a-zA-Z]{1255},([0-9]{1,3})(?)?

但它无法获取
132
100
。如何解决此问题?

请尝试此正则表达式,该正则表达式匹配1或2位数字,或100:

\d{1,2}(?!\d)|100

为什么不保持简单呢

^[a-zA-Z]{1,255}, (100|[1-9][0-9]|[1-9])$
或者更好

^[a-zA-Z]{1,255}, (100|[1-9][0-9]?)$
注意:这与前面的零不匹配,例如“Hello,00001”。它可以很容易地扩展,但是:

^[a-zA-Z]{1,255}, 0*(100|[1-9][0-9]?)$

尝试此..它将匹配1到99或100。大于100的数字将无效

(?:\b|-)([0-9]{1,2}|100)\b
小提琴链接。。

您也可以通过组合正则表达式和算术条件来检查它:

1) 字符串是一个数字:正则表达式匹配[0-9]+

2) 数字在1到100之间

例如,在bash中:

N=100

[[ "$N" =~ ^([0-9]+)$ ]] && (( $N>0 && $N<=100 )) && echo YES || echo NO
# YES

[[ "$N" =~ ^([0-9]+)$ && "$N" -le "100" && "$N" -gt "0" ]] && echo YES || echo NO
# YES


N=0

[[ "$N" =~ ^([0-9]+)$ ]] && (( $N>0 && $N<=100 )) && echo YES || echo NO 
# NO

[[ "$N" =~ ^([0-9]+)$ && "$N" -le "100" && "$N" -gt "0" ]] && echo YES || echo NO
# NO
N=100

[[“$N”=~^([0-9]+)$]&&($N>0&&N0&&N0&&NH这是怎么工作的?我能读一点,但是?!\d?那到底是什么?
[a-zA-Z]{1255},([1-9]{1,3}(?!\d!\100)
对我来说很好,但仍然得到132等。
(?!)
是一个消极的前瞻性断言,因为
(?是一个消极的前瞻性断言,
(Adam Ramadhan):如果你得到的数字超过100,那是因为你没有把它集成到你自己的ReGEXP中,而且它也可以在一个数字中间匹配。@ Adam Ramadhan:不要使用<代码> [1-9] < /Cord>但是<代码> \d>代码>如果你想匹配80, 40, 10,如果你想确定没有前导0,请使用<代码>([1-9] \d{0,1}(?!)|100)
除了答案之外,当你问一个关于正则表达式的问题时,你应该指定你所说的正则表达式的类型。这里我假设它是类似Perl或ECMAScript的。