两个整数之间的正则表达式

时间:2018-01-20 21:11:33

标签: python regex

我正在尝试构建一个将单词mark_140000与大于或等于140000且小于或等于150000的整数匹配的正则表达式。

因此,例如,最小值为mark_150000,最大值为mark_139999。值mark_150001"^mark_14[0-9]{4}$" 无效。

我有一个匹配140000到149999的方法:

{{1}}

我怎样才能获得包括150000的最大值?

3 个答案:

答案 0 :(得分:5)

简单,只需创建2个案例:

"^mark_(14[0-9]{4}|150000)$"

答案 1 :(得分:2)

您的正则表达式需要考虑140000150000的所有可能性

^mark_1(4\d{4})|(50{4})

答案 2 :(得分:0)

您可以编写一个小函数来检查数字部分是否在以下范围内:

import re

data = """So for example the minimum value would be mark_140000 and the maximum value would be mark_150000. The values mark_139999 and mark_150001 would be     Many thanks and mark_100000000000000"""

rx = re.compile(r'mark_(\d+)')

def check(number):
    number = float(number)
    if 140000 <= number <= 150000:
        return True
    return False

matches = [match.group(0)
        for match in rx.finditer(data)
        if check(match.group(1))]
print(matches)

这会产生

['mark_140000', 'mark_150000']