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

0 投票
1 回答
1608 浏览
提问于 2025-04-18 12:58

我正在尝试创建一个正则表达式,它可以选择一个正则表达式或者另一个,比如:

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

简单来说,我想让这个正则表达式在两个正则表达式中选择一个。

1 个回答

0

通过在你的模式中使用“或”操作符 "|",你实际上是在把你的字符串和两个正则表达式进行比较。如果你的字符串符合 "|" 左边或右边的任意一个表达式,re.search 就会返回一个匹配对象。

可以参考 Python 的 文档

交替,或者说“或”操作符。如果 A 和 B 是正则表达式,那么 A|B 会匹配任何符合 A 或 B 的字符串。| 的优先级很低,这样在处理多个字符的字符串时,它能合理地工作。比如,Crow|Servo 会匹配 Crow 或 Servo,而不是匹配 Cro、'w' 或 'S',以及 ervo。

撰写回答