如何獲得包含在另一個匹配中的正則表達式匹配?java獲取正則表達式重疊匹配
我試圖在相同的句子中匹配一個人的名字後跟一個城市。所以我這樣做:
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.");
這將匹配「鮑勃和瑪麗打算去巴黎。」,這是正確的。但它不符合「瑪麗計劃去巴黎」,這實際上是我提到的第一場比賽的一部分。我如何獲得由「瑪麗」開始的第二場次比賽?
while (matcher.find()){
System.out.println(matcher.group());
}
結果:
Bob and Mary are planning to go to Paris.
這是正確的。但我期望輸出如下:
Bob and Mary are planning to go to Paris.
Mary are planning to go to Paris.
什麼是你想實現什麼? – gkalpak
我試圖獲得一個人的名字後跟一個城市的文本片段。人們和城市的名字是已知的,我提供了'瑪麗','鮑勃'和城市的插圖。我需要所有這些。在這個例子中,我需要「鮑勃和瑪麗打算去巴黎。」我也需要「瑪麗計劃去巴黎」。 – juancito