2

我使用正则表达式已经有几年了,但如果我没记错的话,以下应该可以工作:

String test = "axaxa";
Pattern p = Pattern.compile("([a-c])x\1x\1");
Matcher m = p.matcher(test);

m 在运行时不匹配任何内容。这是我在代码中所做的超级简化版本。该示例实际上取自有关正则表达式的 Java 教程!当它不起作用时,我试图重写我的html匹配代码,我去研究,以为我做错了什么......根据互联网,我没有。所以。有谁知道为什么这不起作用?

额外信息,test.matches(the_pattern)退货false。小组回溯似乎把事情搞砸了。

4

2 回答 2

3

尝试\\1\1.

\是 Java 字符串中的转义字符。要将 a 发送\1到正则表达式引擎,我们需要转义\as \\1

于 2010-12-20T08:37:33.803 回答
1

在 Java 中,我们必须转义反斜杠:

Pattern p = Pattern.compile("([a-c])x\\1x\\1");
于 2010-12-20T08:39:11.303 回答