审查最后4封电子邮件

时间:2014-03-13 08:46:24

标签: regex email replace sublimetext

我想搜索&替换电子邮件列表并审查它们的最后4个字母。 我应该使用什么样的正则表达式?

例如: 从 abcd123@hotmail.com 9920ds11@gmail.com abcxxxx@hotmail.com 9920xxxx@gmail.com

3 个答案:

答案 0 :(得分:1)

这种模式应该有效:

<强> [搜索]

.{1,4}(?=\@.*?)

<强> [取代]

xxxx
  • 请注意,任何电子邮件地址前缀&lt; = 4都只是xxxx@example.com

答案 1 :(得分:0)

我刚刚注意到您正在使用Sublime Text。你可以轻松地做到:

  • 查找(.*)(....)(@.*)
  • 替换$1xxxx$3

注意:它只会替换至少包含4个字符的电子邮件,而不会触及其他字符。


C++11中,您可以使用:

if (s.substr(0, s.find('@')).size() >= 4) // only handle email with >= 4 chars
{
    const regex r("(.*)(....)(@.*)");  
    const string fmt("$1xxxx$3");  

    string res = regex_replace(s, r, fmt);
}

现场直播:http://rextester.com/EJV24903

答案 2 :(得分:0)

Java

正则表达式是[\w.!#$%&'*+=?^{}|~\/-]{4}(?=@)

电子邮件根据http://en.wikipedia.org/wiki/Email_address

接受字符

点击此处查看演示

http://regex101.com/r/kZ2fE5

CODE:

String test = "abcd123@hotmail.com";
test        = test.replace("[\\w.!#$%&'*+=?^`{}|~\\/-]{4}(?=@)","xxxx");
System.out.println(test)

当电子邮件少于4个字符时,不会进行替换