如何创建101到1000之间的正则表达式(正则表达式)?

时间:2014-09-02 14:09:10

标签: regex expression

如何更改此正则表达式

([1-9][0-9][0-9]|[1-9][0-9]|[1-9]).*

仅匹配101到1000之间的值。以上仅代表1000位?

由于

6 个答案:

答案 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)

(?!^100$)^[1-9][0-9][0-9]$|1000

这就是诀窍。

参见演示。

http://regex101.com/r/pP3pN1/6

答案 3 :(得分:0)

您可以使用:

^(?!100$)((?:[1-9]\d\d)|1000)$

Regular expression visualization

Debuggex Demo

用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)

看看这个。这包含对您想要做什么以及如何做以及其他范围的解释。

http://www.regular-expressions.info/numericranges.html