我想用0-85代替数字。现在我有0-89。 subject = re.sub(r'([0-8] \ w%?)','',subjectext)
当我做subject = re.sub(r'([0-8] [0-5]%?)','',subjectext) 正则表达式中断。
答案 0 :(得分:3)
尝试这样的模式:
[1-7]?[0-9]|8[0-5]
这将匹配任意字符串,其中包含1到7之间的可选数字,后跟0到9 或之后的数字,然后是0到5之间的数字。
如果您需要添加一个可选的%
符号(未明确说明为必填项,但您的模式似乎表明您可能需要它),请使用以下命令:
([1-7]?[0-9]|8[0-5])%?
但是,上面的内容会匹配像9
这样的较大字符串中的92
之类的字符串。如果您不想这样做,您可能需要考虑使用lookarounds来确保匹配的子字符串前面没有或后跟另一个数字,如下所示:
(?<!\d)([1-7]?[0-9]|8[0-5])%?(?!\d)
答案 1 :(得分:1)
这个正则表达式怎么样?
[1-7]?\d|8[0-5]
答案 2 :(得分:1)
你想得到0到85之间的每个数字,所以每个数字都以0-7开头,然后是0-9或8,然后是1,2,3,4或5:
[1-7]?[0-9]|8[0-5]
# ^^^^^^^^^ ^^^^^^
0 to 79 | 80 to 85
答案 3 :(得分:1)
考虑以下Regex ......
([0-7][0-9]|8[0-5])
祝你好运!