我正在尝试删除以字符串“GUGU”开头的所有序列的字符串,并以“AGAG”之类的结尾。我最接近的是
replaceAll("GUGU(.*)AGAG", "")
但所有这一切都取代了“最大”的实例。意味着如果字符串中出现多次GUGU * AGAG,则它仅匹配最外层。那么我该怎么做才能让字符串中的正则表达式的每个实例都能正常工作呢?
答案 0 :(得分:0)
使用不情愿的而不是贪婪的量词(见the documentation):
String s = "hello GUGU hello AGAG hello GUGU hello AGAG";
// greedy
System.out.println(s.replaceAll("GUGU(.*)AGAG", ""));
// prints "hello "
// reluctant
System.out.println(s.replaceAll("GUGU(.*?)AGAG", ""));
// prints "hello hello "