如何获得包含在另一个匹配项中的正则表达式匹配项?
我试图在同一个句子中匹配一个人的名字,然后是一个城市。所以我这样做:
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.