我正在尝试将@字符之前的电子邮件地址的本地部分与:
LOCAL_RE_NOTQUOTED = """
((
\w # alphanumeric and _
| [!#$%&'*+-/=?^_`{|}~] # special chars, but no dot at beginning
)
(
\w # alphanumeric and _
| [!#$%&'*+-/=?^_`{|}~] # special characters
| ([.](?![.])) # negative lookahead to avoid pairs of dots.
)*)
(?<!\.)(?:@) # no end with dot before @
"""
测试:
re.match(LOCAL_RE_NOTQUOTED, "a.a..a@", re.VERBOSE).group()
给出:
'a.a..a@'
为什么@
在输出中打印,即使我使用的是非捕获组(?:@)
?
测试:
re.match(LOCAL_RE_NOTQUOTED, "a.a..a@", re.VERBOSE).groups()
给出:
('a.a..a', 'a', 'a', None)
为什么正则表达式不拒绝带有一对点的字符串'..'
?