有人可以告诉我如何在文本中找到电子邮件地址吗?
示例文字:
“嗨,
我只是blahblah
电子邮件:lolcat@catinator.com
另一个是lolcat2@catinator.com“
所以输出是:
lolcat@catinator.com
lolcat2@catinator.com
我试过Regex,但我不知道如何在整篇文章中做到这一点......
Pattern pattern = Pattern.compile("[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}");
Matcher matcher = pattern.matcher("asd@asdasd.de".toUpperCase());
if(matcher.matches()){
System.out.println("Mail found!");
}else{
System.out.println("No Mail...");
}
有人能帮助我吗? :(
问候!
答案 0 :(得分:3)
他们有很多不同类型的电子邮件地址格式,很难与所有这些格式相匹配。一个简单的(用于结构化数据)但没有如此有效的方法如下:
String s = "Hey,\n" +
"I just blahblah\n" +
"E-Mail: lolcat@catinator.com\n" +
"Another would be lolcat2@catinator.com";
Pattern p = Pattern.compile("\\S+@\\S+");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group());
}
输出
lolcat@catinator.com
lolcat2@catinator.com
答案 1 :(得分:0)
我不确定您提供的正则表达式。但如果它很好并且符合您的目的,那么您可以使用以下来提取字符串,
Matcher matcher = pattern.matcher("asd@asdasd.de".toUpperCase());
String result;
while (matcher.find()) {
// result now will contain the email address
result = matcher .group();
System.out.println(result);
}