具有捕获组和反向引用的正则表达式如何在Java中匹配?

sna*_*ahi 1 java regex

我很难理解某个Java正则表达式会匹配什么:

"<(\\w+)></\\1>"
Run Code Online (Sandbox Code Playgroud)

我已经阅读了这篇http://docs.oracle.com/javase/tutorial/essential/regex/

但是我仍然无法弄清楚那个表达式会匹配什么,尤其是那个\1部分.我可以看到,这<(\w+)>是一个匹配任何单词的占有量词,但我不明白为什么使用()根据教程的匹配组.

至于第二部分,我只是不知道\1会匹配什么.我试过了

"001123344556678899".replaceAll("\\1", ""); 
Run Code Online (Sandbox Code Playgroud)

因为我认为它可能只是匹配一个数字,但它给了我回到我的字符串,因为没有任何替代.

Sim*_*son 8

它旨在匹配XML/HTML标记对,例如

<tag></tag>
Run Code Online (Sandbox Code Playgroud)

\\1均值匹配第一个匹配的组,即括号中的东西.(双反斜杠是因为需要在Java字符串文字中转义反斜杠.)