我有两个正则表达式,一个是从csv字符串中提取用户名,另一个是拔出电子邮件。合并两个正则表达式
字符串格式是这样的:
String s = "name lastname (username) <[email protected]>; name lastname (username) <[email protected]>; name lastname (username) <[email protected]>";
的代码为我的正则表达式是这样的。
Pattern pattern = Pattern.compile("(?<=\\()[^\\)]+");
Matcher matcher = pattern.matcher(s);
Pattern pattern2 = Pattern.compile("((?<=<)[^>]+)");
Matcher matcher2 = pattern2.matcher(s);
while (matcher.find() && matcher2.find()) {
System.out.println(matcher.group() + " " + matcher2.group());
}
我已经发现了几个qeustions关于合并的正则表达式,但是从我的答案一直无法弄清楚如何合并我的。
我的打印输出显示:
"username [email protected]"
我将能够打印出从单一匹配相同,使用正则表达式的一个?
obs:这是一个学校作业,这意味着我不需要“合并它们或做更多的事情,但我想知道它是否可能,以及它会有多困难。
我猜想OP想要和正则表达式,而不是他们 –
@AdamDyga不,他希望用户名和电子邮件来自单个正则表达式。请参阅: - '我能够打印出相同的单一匹配器,使用一个正则表达式?' –
有一个小的差异,OPs代码('(matcher.find()&& matcher2.find())'要求用户名和邮件必须在字符串中以便打印。 –