【发布时间】:2019-07-06 01:56:17
【问题描述】:
我需要一个正则表达式来混淆我拥有的数据库转储文件中的电子邮件。我想用@fake.com 之类的设置域替换所有域,这样我就不会冒险在开发过程中向真实的人发送电子邮件。电子邮件必须是唯一的才能匹配数据库约束,所以我只想替换域并保留用户名。
我目前有这个用于查找电子邮件的正则表达式
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
如何将此搜索正则表达式转换为可用于 Sublime Text、SED 或 Vim 中的查找和替换操作的正则表达式?
编辑:
请注意,我刚刚意识到在这种情况下我可以替换 @[A-Z0-9.-]+\.[A-Z]{2,4}\b 找到的所有字符串,但在学术上我仍然对如何将电子邮件正则表达式的每个部分视为令牌并替换用户名/域感兴趣独立。
【问题讨论】:
-
搜索和查找和替换正则表达式之间没有区别,是吗?如果你想正确地完成这项工作,你可能想看看here。
-
@m.buettner,不是吗,我不需要将电子邮件地址分成令牌并替换特定令牌,这样我就不会替换整个电子邮件地址吗?
-
您可以仅搜索域 (
@....) 并将其替换 - 如果您可以假设@不会出现在其他上下文中。您还可以使用捕获组和反向引用。 -
@JamesMcMahon 哦,我明白你的意思了。我的错。