我通过 regex 抓住了一个小组,我想抓住 一切,但不是小组。 因此,组可以在字符串中的不同位置上发生多次出现。
我的第一个想法是,以消极的前瞻来解决它,但我失败了。因此我尝试了非捕获组,我也在这里。
(bar)(baz)foo
我想要foo。
这是我到目前为止所做的:
String input = "(bar) (baz) foo";
String matchesGroup = "((?=\\().*?\\))"; //matches (...)
// as Casimir et Hippolyte commented, I know use
// ((?:(...))+) for the non capturing group
String matchesFoo = "((?:"+ matchesGroup +")+)\\s(.*)";
Pattern pattern = Pattern.compile(matchesFoo);
Matcher matcher = pattern.matcher(input);
while (matcher.find()){
System.out.println(matcher.group());
}
但根本没有捕获任何内容
实际:
预期:foo
我在正则表达式中的错在哪里?
答案 0 :(得分:1)
答案 1 :(得分:0)
你为什么不试试这个:
String testtring = "matches matches foo";
testString = testString.replaceAll("matches", "");
System.out.println(testString);