如何更换正则表达式的最后一个匹配?我知道这与它有关吗?但我们如何正确使用前瞻?在SO上有一些类似的问题,但他们只需要删除一个最后一个字符,我不能适应整个正则表达式匹配。
// EDIT: the last regex returned "" not "/0/" - the difference is the ?= instead of ?!
String foo = "/0/a/b/c/a/b/c/d".replaceAll("(?=a.b.c).*$","");
assert (foo, "/0/a/b/c/"); // I keep getting /0/ :-(
答案 0 :(得分:1)
您可以使用以下内容:
String foo = "/0/a/b/c/a/b/c/d".replaceAll("a.b.c(?!.*a.b.c).*", "");
该模式将与a.b.c
匹配,后面没有其他a.b.c
。