我學習有關Java正則表達式,我注意到以下操作:的\ 1含義*運營商在Java中的正則表達式
\\*1
我有很難搞清楚這意味着什麼(在搜索網站沒有幫助)。 例如,正是這兩個選項之間的區別:
Pattern p1 = Pattern.compile("(a)\\1*"); // option1
Pattern p2 = Pattern.compile("(a)"); // option2
Matcher m1 = p1.matcher("a");
Matcher m2 = p2.matcher("a");
System.out.println(m1.group(0));
System.out.println(m2.group(0));
結果:
a
a
謝謝!
它被稱爲反向引用 – anubhava
這是一個反向引用。快速谷歌顯示,這顯然不能在Java中工作,你必須使用別的東西:https://stackoverflow.com/questions/18888877/in-java-regular-expression-1-back-reference-is-not工作 – KdgDev
@KdgDev它可以在Java中正常工作,但不在替換表達式中。 – assylias