如何更改此正则表达式
([1-9][0-9][0-9]|[1-9][0-9]|[1-9]).*
仅匹配101到1000之间的值。以上仅代表1000位?
由于
答案 0 :(得分:2)
^(10[1-9]|1[1-9]\d|[2-9]\d\d|1000)$
应该这样做。
10[1-9]
匹配101-109 1[1-9]\d
匹配110-199 [2-9]\d\d
maches 200-999 1000
匹配1000 $
匹配字符串的结尾RegEx演示:http://regex101.com/r/dE8uJ1/2
编辑:将^
和$
添加到正则表达式以防止错误的数字中间匹配
答案 1 :(得分:0)
你可以这样:
^(10[1-9]|1[1-9]\d|[2-9]\d\d|1000)$
这是
10[1-9]
or
1[1-9]\d
or
[2-9]\d\d
or
1000
从头到尾(^
和$
)
要测试的案例数量只记得我们有时候解决方案比正则表达式更好
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以使用:
^(?!100$)((?:[1-9]\d\d)|1000)$
用Python测试:
>>> tester='\n'.join([str(e) for e in range(2000)])
>>> tgt=range(101,1001)
>>> result=map(int, re.findall(r'^(?!100$)((?:[1-9]\d\d)|1000)$', tester, re.M))
>>> tgt==result
True
答案 4 :(得分:0)
([1-9]\d\d|1000)
这应该可以在python3中达到目的。
答案 5 :(得分:-1)
看看这个。这包含对您想要做什么以及如何做以及其他范围的解释。