Python 正则表达式-可能的字符匹配集
我需要测试正则表达式是否有一组可能的字符匹配 字段“TEST”可以获取这些可能的值-“TEST1”、“TEST2”、“TEST3”…“TEST10”Python 正则表达式-可能的字符匹配集,python,regex,Python,Regex,我需要测试正则表达式是否有一组可能的字符匹配 字段“TEST”可以获取这些可能的值-“TEST1”、“TEST2”、“TEST3”…“TEST10” import re pattern = 'TEST[0123456789] field = 'TEST1' match = re.search(match,field) 如何在模式匹配中指定[10]的值?10是一个两个字符的字符串: r'TEST\d{1,2}' 将匹配一个或两个数字\d匹配0到9范围内的任何字符;它是[0123456789]
import re
pattern = 'TEST[0123456789]
field = 'TEST1'
match = re.search(match,field)
如何在模式匹配中指定[10]的值?10是一个两个字符的字符串:
r'TEST\d{1,2}'
将匹配一个或两个数字\d匹配0到9范围内的任何字符;它是[0123456789]的速记等价物
或者,使用两种备选方案:
r'TEST(?:\d|10)'
将允许1位数字,或允许10位数字。注意,它仍然与TEST11匹配,因为该字符串以TEST1开头。如果要防止边界测试仍然匹配,请添加边界测试:
r'TEST(?:\d|10)\b'
最后一种模式的演示:
>>> re.search(r'TEST(?:\d|10)\b', 'TEST0').group()
'TEST0'
>>> re.search(r'TEST(?:\d|10)\b', 'TEST8').group()
'TEST8'
>>> re.search(r'TEST(?:\d|10)\b', 'TEST10').group()
'TEST10'
>>> re.search(r'TEST(?:\d|10)\b', 'TEST11') is None
True
10是两个字符的字符串:
r'TEST\d{1,2}'
将匹配一个或两个数字\d匹配0到9范围内的任何字符;它是[0123456789]的速记等价物
或者,使用两种备选方案:
r'TEST(?:\d|10)'
将允许1位数字,或允许10位数字。注意,它仍然与TEST11匹配,因为该字符串以TEST1开头。如果要防止边界测试仍然匹配,请添加边界测试:
r'TEST(?:\d|10)\b'
最后一种模式的演示:
>>> re.search(r'TEST(?:\d|10)\b', 'TEST0').group()
'TEST0'
>>> re.search(r'TEST(?:\d|10)\b', 'TEST8').group()
'TEST8'
>>> re.search(r'TEST(?:\d|10)\b', 'TEST10').group()
'TEST10'
>>> re.search(r'TEST(?:\d|10)\b', 'TEST11') is None
True
这修复了其他答案没有解决的两个场景
在行动中:
这修复了其他答案没有解决的两个场景
在行动中: