我正在尝试在 Java 正则表达式中使用反向引用,但似乎我没有以正确的方式进行操作,并且无法使其工作。我希望能够匹配由 2 个相同引号引起来的字符串部分,例如查找字符串是否包含 "whatever"
或 'whatever'
。
然后我编写了以下代码:
Pattern p = Pattern.compile("(\"|\')whatever\1");
Matcher m = p.matcher("'whatever'loremipsumblah");
System.out.println(m.find()); // always returns false
...但向后引用似乎根本不起作用,因为匹配器找不到与模式匹配的字符串的任何部分。我希望你们能够帮助我,因为我肯定被困住了:|
最佳答案
转义数字“1”之前的反斜杠。否则,序列“\1”将被解释为字符 U+0001 的八进制转义。
Pattern p = Pattern.compile("(\"|\')whatever\\1");
关于java - 匹配两个相同字符之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1495442/