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

时间:2013-10-30 01:57:15

标签: regex

我有一个XML文件,其中包含电子邮件地址作为每条记录的一部分。我想隐藏电子邮件地址(隐私),但如果同一个电子邮件地址中有多个记录(在这种情况下是购买),也要保持“单一性”。

想象可能有一种方法可以使用正则表达式替换“@”之前和之后的字符*或类似字符。确定前后3或4个字符保留隐私和(大部分)保持“唯一性”。

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

感谢。

1 个答案:

答案 0 :(得分:1)

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

如何进行替换取决于您的语言以及加载文件的方式。如果您只是在像Ultra Edit这样的文本编辑器中执行此操作,而不是在程序中间,那么我会执行以下操作:

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

这样它仍会在短电子邮件地址上做点什么。 (调整为不包括您的xml标签)