我想执行操作,例如从两个中选择任何一个合适的组 例如:
gmail.com|gmail.co.in
这给了我直接的结果但是如何为python编写正则表达式以映射上述情况的电子邮件ID。 注意。我只想在点或最多两组点和2个字符后映射3个字符
我尝试将正则表达式写成:
[\w]+\.?[\w]{3}|[[\w]{2}\.?]{2}
但不会给我预期的结果
如果尝试使用()返回组,例如:abcd@gmail.com
将返回gmail.com
,但需要检索整个电子邮件地址。
答案 0 :(得分:2)
您可以使用以下正则表达式:
\w+@\w+\.((\w{3})|(\w{2}\.\w{2}))
这里你需要的只是第一部分为\w+@\w+\.
然后你只需要玩分组和管道。所以下面的模式:
((\w{3})|(\w{2}\.\w{2}))
将匹配包含3个字符的字符串或(\w{2}\.\w{2})
表示带有2个字符的字符串,然后点击带有2个字符的字符串。
答案 1 :(得分:0)
希望这有帮助。
>>> import re
>>> y = re.search('(?P<user>\w+)@(?P<domain>[\w.]+)', 'abc@gmail.com')
>>> print y.group("user"), y.group("domain")
abc gmail.com
>>> y = re.search('(?P<user>\w+)@(?P<domain>[\w.]+)', 'abc@gmail.co.in')
>>> print y.group("user"), y.group("domain")
abc gmail.co.in
>>>
答案 2 :(得分:0)
我希望这可以帮到你。
email = 'abc@gmail.com'
user = email.split('@')[0]
domain = email.split('@')[1]