学习正则表达式,我试图在我的示例中替换一些内容为@
和.
的单词,就像电子邮件地址一样。我尝试了几种组合,但没有一种方法可行。
public class extraction {
public static void main(String args[]){
String outText="";
String inText="Hello my email as me@google.com and not me@goolgle; but you can also use me@custom-mail.com";
outText = inText.replaceAll("/[@/\\.]", "NOTAVAILABLE");
System.out.println(outText);
// Expected: Hello my email as NOTAVAILABLE and not me@goolgle; but you can also use NOTAVAILABLE
}
}
感谢任何建议!
答案 0 :(得分:2)
您可以使用此正则表达式进行搜索:
[^\s@]+@[^\s.]+\.\S+
并替换为"NOTAVAILABLE"
字符串。
<强>代码:强>
str = str.replaceAll("[^\\s@]+@[^\\s.]+\\.\\S+", "NOTAVAILABLE");
<强>解释强>
[^\s@]+
:匹配1个以上不是空格但不是@
的字符@
:匹配@
[^\s.]+
:匹配1个不是空格而不是点\.
:匹配文字点\S+
:匹配1个非空格字符Code Demo(@ctwheels提供)