【发布时间】:2021-07-01 04:49:45
【问题描述】:
这个例子来自一本书。 电子邮件正则表达式如下所示:
emailRegex = re.compile(r'''(
[a-zA-Z0-9._%+-]+ #username
@ #@ symbol
[a-zA-Z-0-9.-]+ #domain name
(\.[a-zA-Z]{2,5}) #dot-something
)''', re.VERBOSE)
匹配[a-zA-Z0-9._%+-] 的一次或多次出现,然后是@,然后是[a-zA-Z-0-9.-] 的一次或多次出现,然后是一个点,以及[a-zA-Z] 中的 2 到 5 个字符。
>>> emailRegex.findall('my email: stackoverflow@flow.com Please reach me here.')
[('stackoverflow@flow.com', '.com')]
'.com' 如何包含在内? .com 已经与[a-zA-Z-0-9.-]+ 匹配,然后又与(\.[a-zA-Z]{2,5}) 匹配?这是如何运作的?我认为这与 emailRegex 具有嵌套组的事实有关,但我不熟悉它是如何工作的。
【问题讨论】: