다른 일치 항목에 포함 된 정규식 일치를 얻으려면 어떻게해야합니까?자바 정규식 겹침 일치
동일한 문장 내에서 도시 이름이 뒤 따르는 사람과 이름을 일치 시키려고합니다. 그래서 나는 이렇게하고있다 :
String regex="(Bob|Mary)\\b[^\\.\\?!]*?\\b(Paris|London)\\b.*?[\\.\\?!]";
Pattern pattern=Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher matcher=pattern.matcher("Bob and Mary are planning to go to Paris. They want to leave before July.");
이것은 "Bob and Mary가 파리에 갈 계획이다"와 일치 할 것이다. 그러나 그것은 "마리아가 파리에 갈 계획"과 일치하지 않는다. 사실 내가 언급 한 첫 번째 경기의 일부이다. "Mary"가 시작하는이 두 번째 하위 경기는 어떻게 얻을 수 있습니까? 정확한
Bob and Mary are planning to go to Paris.
:에
while (matcher.find()){
System.out.println(matcher.group());
}
결과. 그러나 다음과 같은 출력을 기대할 수 있습니다.
Bob and Mary are planning to go to Paris.
Mary are planning to go to Paris.
당신이 달성하려고하는 무엇을? – gkalpak
사람의 이름 뒤에 도시가 오는 텍스트 단편을 얻으려고합니다. 사람들과 도시의 이름은 알려져 있으며, 나는 'Mary', 'Bob'및 도시를 삽화로 제공합니다. 그리고 그 모든 일이 필요합니다. 예를 들어, "Bob과 Mary는 파리에 갈 계획입니다." 나는 또한 "마리아는 파리에 갈 계획"이라고 요구합니다. – juancito