Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式-可能的字符匹配集_Python_Regex - Fatal编程技术网

Python 正则表达式-可能的字符匹配集

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]

我需要测试正则表达式是否有一组可能的字符匹配

字段“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]的速记等价物

或者,使用两种备选方案:

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
这修复了其他答案没有解决的两个场景

在行动中:

这修复了其他答案没有解决的两个场景

在行动中: