İki düzenli ifadem var; biri bir csv dizesinden kullanıcı adlarını çekiyor, diğeri de e-postaları çekiyor.iki düzenli ifadeyi birleştirin
dize biçimi şu şekildedir: benim normal ifadeler için
String s = "name lastname (username) <[email protected]>; name lastname (username) <[email protected]>; name lastname (username) <[email protected]>";
kod bu şekildedir.
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());
}
Ben birleştirme regexes hakkında çeşitli qeustions buldum ama yanıtlarından i mayın birleştirmek için nasıl anlamaya edemedik.
benim çıktılar gösterir:
"username [email protected]"
Bir regex kullanarak, bir tek Eşleştirici aynı üzerinden baskı mümkün olacaktır?
obs: Bu bir okul ödevidir, yani onları birleştirmek veya daha fazlasını yapmak için "ihtiyacım" yoktur, ancak mümkün olup olmadığını ve ne kadar zor olacağını bilmek isterim.
Ben OP için AND regexpleri değil VEYA onları –
@AdamDyga o tek regex hem kullanıcı adı ve e-posta istediği hiçbir istiyor sanırım .. Bkz Bir regex? ' –
küçük bir fark vardır, OPs kodu (' (matcher.find() && matcher2.find()) ', yazdırılabilmesi için hem kullanıcı adı hem de postanın dizgede olması gerekir. –