gpt4 book ai didi

python - 在 Python 正则表达式中捕获重复子模式

转载 作者:太空宇宙 更新时间:2023-11-03 20:49:05 26 4
gpt4 key购买 nike

在匹配电子邮件地址时,在匹配 yasar@webmail 之类的内容后,我想捕获一个或多个 (\.\w+)(我是什么做起来有点复杂,这只是一个例子),我尝试添加 (.\w+)+ ,但它只捕获最后一个匹配。例如, yasar@webmail.something.edu.tr 匹配,但仅在 yasar@webmail 部分之后包含 .tr,所以我丢失了 .something.edu 组。我可以在 Python 正则表达式中执行此操作,还是建议首先匹配所有内容,然后再拆分子模式?

最佳答案

re 模块不支持重复捕获( regex 支持):

>>> m = regex.match(r'([.\w]+)@((\w+)(\.\w+)+)', 'yasar@webmail.something.edu.tr')
>>> m.groups()
('yasar', 'webmail.something.edu.tr', 'webmail', '.tr')
>>> m.captures(4)
['.something', '.edu', '.tr']

在你的情况下,我会稍后分割重复的子模式。它会产生简单易读的代码,例如,请参阅 @Li-aung Yip's answer 中的代码。 .

关于python - 在 Python 正则表达式中捕获重复子模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56385636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com