我有一串字符串,我正在寻找以下面的格式解析并提取电子邮件和字符串后跟一个分隔符Java/Scala提取电子邮件和一个格式为电子邮件的字符串[分隔符]字符串
email[delimiter]string
换句话说 [与任何ASCII字符的电子邮件] [定界符] [字符串与任何ASCII字符]
定界符可以是;:|或|| 例如
[email protected],blah
[email protected];blah1
[email protected]:blah2
[email protected]|blah,2
[email protected]||blah2
我迄今取得的进展是继正则表达式来匹配上面的字符串,然而,我怎么能修改此正则表达式,这样我可以形成相应的组只提取电子邮件,接着是Java中的分隔符字符串/斯卡拉
[email protected]+([:;,|])+.+$
Java代码会是这个样子:
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
if (m.find()) {
System.out.println("Email: " + m.group(0));
System.out.println("Value: " + m.group(1));
} else {
System.out.println("NO MATCH");
}
想想你的字符串像((电子邮件)(任何)),那么你只需要让他第一组 –
只是一个音符 - “组(0)”是整个比赛。我想你想要'组(1)'和'组(2)'。 –
是的,这正是我在发布的答案中所做的。 – codehammer