【发布时间】:2020-07-15 12:16:11
【问题描述】:
是否可以使用 Python 在一个正则表达式中多次重复命名捕获组?
下面是正则表达式(这是不正确的,因为在同一个正则表达式中有重复的命名组)
regex = r'''Use ((?P<phn_num>(?<=(Phone: ))\d{10})?(?P<lndln_num>(?<=(landline: ))\d{10})?)
or you can also use
((?P<phn_num>(?<=(Phone: ))\d{10})?(?P<lndln_num>(?<=(Landline: ))\d{10})?)'''
输入字符串将是以下之一:
1. Use Phone: 1234567890 or you can also use Landline: 0012345678
2. Use Landline: 0012345678 or you can also use Phone: 1234567890
目标是让一个正则表达式将phn_num 和lndln_num 捕获为命名捕获组(如果将上述任何字符串作为输入)。
【问题讨论】:
-
试试这个
Use (?:Phone: (?P<phn_num>\d{10})|landline: (?P<lndln_num>\d{10}))regex101.com/r/9Z3uvs/1 -
“使用”和“或者你也可以使用”是字符串的一部分吗?
-
@Austin,是的,它是字符串的一部分
-
是的,它很有帮助,我用它来解决这个问题..谢谢..