Java正则表达式反斜杠数字

4

在Java中,正则表达式中的\number是什么意思呢?

假设我有一个类似\1或者\2的字符串,它代表什么意思,如何使用呢?举个例子会更加清晰。

谢谢!


\number 意味着你太懒了,不愿意进行一个简单的谷歌搜索,查找“正则表达式反斜杠数字”的含义。希望这可以帮到你。 - tenub
1
我尝试了很多方法,但没有找到一个快速有效的解决方案。 - Mohammad Najar
如果我按照标题的确切内容进行搜索,搜索结果页面似乎没有立即显示与问题相关的结果。我必须猜测哪个链接最有可能有用。 - ajb
简短的回答是 <number> 是一个字符,它的八进制 ASCII 码是 <number>。它可以用 ??? 表示法或简单表示(如 041 和 41)。无论如何,我认为这通常不太有用,因为大多数人不会像这样使用它。由于更常用的字符有快捷方式,如 "\n" 表示 LF 和 \t 表示 HT。这里有更多关于使用的信息:http://docs.oracle.com/javase/tutorial/java/data/characters.html在标准字符串中,最好理解的是 \ 是转义字符。Java 寻找它背后的一些特殊含义。 - KonradOliwer
@KonradOliwer 如果是 Pattern.compile("((xyz)*)\1") 这样的话,你说得对。但我们都猜测代码看起来更像是 Pattern.compile("((xyz)*)\\1") 或类似的东西。 - ajb
我添加它只是因为当我第一次看到主题时,我发现我们通常谈论字符串,而不是特定的正则表达式。只是添加,以便给询问者更好地了解整个问题。但是,既然Mohammad似乎找到了他需要的东西,那么它可能不再有用了。 - KonradOliwer
2个回答

5
回溯引用匹配与先前捕获组完全相同的文本。假设您想匹配一对开放和关闭的HTML标记以及其中间的文本。通过将开放标记放入回溯引用中,我们可以重用标记的名称来匹配关闭标记。以下是方法: <([A-Z][A-Z0-9]*)\b[^>]*>.*?</\1> 该正则表达式仅包含一对括号,捕获由 [A-Z][A-Z0-9]* 匹配的字符串。回溯引用 \1 (反斜线一) 引用第一个捕获组。 \1 匹配与第一个捕获组完全相同的文本。前面的/ 是一个字面字符,它只是我们试图匹配的关闭HTML标记中的正斜杠。 详情和示例请参见: http://www.regular-expressions.info/backref.html

1
еҘҪзҡ„еӣһзӯ”пјҢдҪҶжҲ‘дёҚе–ңж¬ўйј“еҠұиҜ»иҖ…и®ӨдёәдҪ еҸҜд»ҘдҪҝз”ЁжӯЈеҲҷиЎЁиҫҫејҸжқҘи§ЈжһҗH#^@ ... и§ЈжһҗHT*#% ... pa#*$ ... е“ҰпјҢеӨ©е•ҠпјҢжҲ‘з”ҡиҮідёҚиғҪиҜҙеҮәжқҘ...иҜ·дёҚиҰҒй“ҫжҺҘеҲ°йӮЈдёӘй—®йўҳ... - ajb
1
假设我们有<(GROUP_1)>(GROUP_2)</\2>。这是否意味着\2将在</....>中放置与GROUP_2中定义的相同的正则表达式? - Mohammad Najar

0

\ 通常用于构建匹配的开头。 它也代表一个转义字符。


1
这并没有回答问题。 - ajb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接