使用单个正则表达式模式替换无效的电子邮件地址字符。将“At”、“at”替换为“@",并将“点”替换为“”。
编码:
import re
email = "abc at xyz.com, abc At xyz.com, abc (at) xyz [dot] com"
pa = re.compile(r'(\s+[\(\[]*\s*at*\s*[\)\]]*\s+)',flags=re.IGNORECASE)
em = pa.sub(r'@',email)
print(em)
输出量
abc@xyz.com, abc@xyz.com, abc@xyz [dot] com
预期产出
abc@xyz.com, abc@xyz.com, abc@xyz.com
如何用.“”替换“[点]”?
1条答案
按热度按时间ghhkc1vu1#
简单地说,
re.sub
的第二个参数可以是任意复杂度的函数,但要求该函数内联到一行似乎有点不诚实。这里,我们创建一个
re.sub
,它使用一个简单的字典来决定用什么来替换匹配。主要的技巧是只将字典键捕获到带括号的子表达式中,然后在
.group(1)
中可用。演示:https://ideone.com/3Llu0i