두 개의 정규 표현식이 있습니다. 하나는 CSV 문자열에서 사용자 이름을 꺼내고 다른 하나는 이메일을 꺼냅니다.2 개의 정규 표현식을 병합합니다.
문자열 형식은 다음과 같이이다 : 내 정규 표현식
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가 regexps를 원한다고 생각하지 않거나, OR –
@AdamDyga 아니, 그는 하나의 정규식에서 사용자 이름과 이메일을 원한다. 참조 : - '단일 정규 표현식에서 같은 것을 인쇄 할 수 있습니까? 하나의 정규식? –
작은 차이가 있습니다, OPs 코드 ('((matcher.find() && matcher2.find())'는 사용자 이름과 메일 모두가 문자열에 있어야만 인쇄 할 수 있어야합니다. –