我有以下常规代码
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String myInput="License_All (12313)"
String myRegex="\\(\\d+\\)"
String ResultString
Pattern regex
Matcher regexMatcher
regex = Pattern.compile(myRegex, Pattern.DOTALL);
regexMatcher = regex.matcher(myInput);
List<String> matchList = new ArrayList<String>();
while (regexMatcher.find()) {
matchList.add(regexMatcher.group());
}
for(int i=0;i<matchList.size();i++)
{
myInput=myInput.replaceAll( matchList[i], '')
println matchList[i]
}
println myInput
它应该删除
(12313)
部分,但它给了我下面的输出(12313)
License_All ()
如何删除所有支架部分
(12313)
? 最佳答案
matchList
将包含匹配的部分,即(12313)
。然后,再次将其作为replaceAll
中的正则表达式,并因此将其解释为组。因此,支架未卸下。
相反,您可以直接在replaceAll
中使用正则表达式:
myInput.replaceAll(myRegex, "")