Java正则表达式替换问题

时间:2015-09-16 02:52:10

标签: java regex replace

public class Main {
    /**
     * @param args
     */
    public static void main(String[] args) {
        String url="http://a.b.com/m/test/index";
        System.out.println(url.replaceAll("^.*?((?<!/)(?:/)(?!/))", ""));
    }
}

系统打印为:m/test/index。 但在我看来它应该是:/m/test/index。有人给出了一些理由吗?

1 个答案:

答案 0 :(得分:2)

你的正则表达式是“尽可能少的字符,包括第一个斜线,前面既不是斜线也不是斜杠”。斜线本身显然包含在正则表达式中。它在非捕获组中的事实并不意味着它不是匹配的一部分。