我正在尝试使用正则表达式解析一些电子邮件标题信息。我的字符串将具有如下所示的格式:
String one = "The quick brown fox jumps over the fence From: First Email <test@gmail.com>";
String two = "Some filler text From: <test2@gmail.com>";
我需要创建一个正则表达式,它将获取将从第一个字符串返回“From:First Email”的字符串,并从第二个字符串返回“From:”
到目前为止这是我的模式,但它不起作用:
Pattern p = Pattern.compile("From: [@[\\w]+.[\\w]{2,3}]");
目前它只返回两个字符串的“From:F”和null。
答案 0 :(得分:1)
尝试:
"From: [^<]*"
这匹配开头括号<
答案 1 :(得分:0)
这个怎么样:
From: [^<]*
我的解决方案: 查找“From:”然后捕获所有不是“&lt;”
的内容您发布的模式与您遇到的问题无关,是吗?
使用方括号可以创建与类中字符匹配的字符类。
[@[\\w]+.[\\w]{2,3}]
1111111 22222
1标记你的第一个字符类,包括@,[和单词字符\w
,你匹配一次或多次(因为+
),然后是一个字符,然后是下一个类只有\w
这2或3次。最后一个无与伦比的结束方括号==&gt; 编译器应该已经落后于这个
答案 2 :(得分:0)
为什么不更具体地写一下你的正则表达式呢?
即。 "[<]{1}[a-z1-9]+@{1}[a-z1-9]+[.]{1}[a-z]{3}[>]{1}"
应找到与&lt;内的任何电子邮件地址匹配的匹配项和&gt;并且不包含任何大写字母。
在那里添加“FROM:”。如何添加“FROM:[a-z1-9A-Z] +”到开头。
I.E。:"FROM:[a-z1-9A-Z ]+[<]{1}[a-z1-9]+@{1}[a-z1-9]+[.]{1}[a-z]{3}[>]{1}"