Python正则表达式选择正则表达式A或正则表达式B

Python正则表达式选择正则表达式A或正则表达式B,python,regex,Python,Regex,我正在尝试创建一个regex语句,该语句将选择一个regex或另一个,例如: string = '123 Test String' pattern = r'( ?)([T](?P<name1>\w+))|([A](?P<name2>\w+))' m = re.search(pattern, string) 基本上,我希望正则表达式从另一个正则表达式中选择一个。通过在模式中使用交替或运算符,可以有效地将字符串与两个正则表达式进行比较。如果字符串与|任一侧的表达式匹配

我正在尝试创建一个regex语句,该语句将选择一个regex或另一个,例如:

string = '123 Test String'   
pattern = r'( ?)([T](?P<name1>\w+))|([A](?P<name2>\w+))'
m = re.search(pattern, string)

基本上,我希望正则表达式从另一个正则表达式中选择一个。

通过在模式中使用交替或运算符,可以有效地将字符串与两个正则表达式进行比较。如果字符串与|任一侧的表达式匹配,则re.search将返回MatchObject

请参见Python:


交替,或“或”运算符。如果A和B是正则表达式,则A | B将匹配与A或B匹配的任何字符串。为了在交替使用多个字符串时使其合理工作,A | B的优先级非常低。Crow | Servo将匹配Crow或Servo,而不是Cro、w或S,以及ervo。

re.search将在第一次匹配后停止匹配。您的实际问题是什么?你的第二个模式应该失败,因为没有一个单词以“啊”开头,问题是什么?你给出的正则表达式将搜索第一个或第二个模式,你还要问什么?r'cat | dog?匹配cat、do或dog。