【发布时间】:2020-04-13 14:56:46
【问题描述】:
我正在尝试调试以下 Python 正则表达式
<meta name="Author" content=".*(?P<uid>([a-zA-Z]*))@abc\.com.*
我使用以下字符串作为示例:
<meta name="Author" content="qwerty(qwerty@abc.com)#comments=release candidate for AA 1.1">
您能否解释一下为什么以下代码找不到组“uid”:
regex = re.compile(r'<meta name="Author" content=".*(?P<uid>([a-zA-Z]*))@abc\.com')
a = '<meta name="Author" content="qwerty(qwerty@abc.com)#comments=release candidate for AA 1.1">'
q = regex.search(a)
if q:
print(q.group('uid'))
我什至做了一个 DFA,但仍然无法理解为什么找不到该组。
【问题讨论】:
-
您与
(不匹配组 uid 中的预期值?见regex101.com/r/BYRMXD/1 -
只需删除
.*子模式,它们匹配您需要提取的字符串前后一行的所有文本。
标签: python regex regex-group