Skip to main content
 首页 » 编程设计

python之正则表达式之一组可能的字符匹配

2025年05月04日26qq78292959

我需要为一组可能的字符匹配测试正则表达式,

“TEST”字段可以采用这些可能的值 - “TEST1”、“TEST2”、“TEST3”...“TEST10”

import re 
pattern = 'TEST[0123456789] 
field = 'TEST1' 
 
match = re.search(match,field) 

如何在模式匹配中指定[10]的值?

请您参考如下方法:

10 是一个 2 个字符的字符串:

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