Regex 正则表达式替换字符串前后的一些字符

Regex 正则表达式替换字符串前后的一些字符,regex,Regex,我有一个XML文件,每个记录中都包含电子邮件地址。我想隐藏电子邮件地址(为了隐私),但也要保持它们的“唯一性”,以便在同一电子邮件地址中有多个记录时允许合并记录(在本例中为购买记录) 我想可能有一种方法可以使用正则表达式将“@”前后的字符替换为*或类似的字符。计算前后的3或4个字符可以保护隐私,并且(在大多数情况下)保持“唯一性” 关于最佳方法的建议(包括一些与我所想完全不同的选项) 谢谢。正则表达式看起来像这样:([^@]{1,4})@(.{1,4}),在@前后最多有4个字符 如何进行替换取决

我有一个XML文件,每个记录中都包含电子邮件地址。我想隐藏电子邮件地址(为了隐私),但也要保持它们的“唯一性”,以便在同一电子邮件地址中有多个记录时允许合并记录(在本例中为购买记录)

我想可能有一种方法可以使用正则表达式将“@”前后的字符替换为*或类似的字符。计算前后的3或4个字符可以保护隐私,并且(在大多数情况下)保持“唯一性”

关于最佳方法的建议(包括一些与我所想完全不同的选项)


谢谢。

正则表达式看起来像这样:([^@]{1,4})@(.{1,4}),在@前后最多有4个字符

如何进行替换取决于您的语言以及如何加载文件。如果你只是在文本编辑器中这样做,比如超编辑,而不是在程序的中间,那么我会做这样的事情:

Replace all [^@>]@[^<] with *@*
Replace all [^@>]{2}@[^<]{2} with **@**
Replace all [^@>]{3}@[^<]{3} with ***@***
Replace all [^@>]{4}@[^<]{4} with ****@****

Replace all[^@>][^]{2}@[^]{3}@[^]{4}@[^您可能正计划用特定的语言进行此操作。您可能需要指定。我很开放,但观点很好。可以使用文本编辑器,但愿意尝试使用javascript或PHP。