java - 匹配两个相同字符之间的字符串

标签 java regex

我正在尝试在 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/

相关文章:

c# - ^([1-9]{1,2},){4}[1-9]{1,2}$ 和 ([1-9]{1,2},){4}[ 有什么区别1-9]{1,2}?

java - 使用 Java 流打印从 A 到 Z 的字母

Java:如何在覆盖已弃用成员的派生接口(interface)中避免弃用警告?

java - XPath 表达式无法匹配

c++ - Boost::regex 问题,匹配 HTML span 元素

java - 正则表达式匹配反斜杠后跟引号

java - Gmail Api 服务帐户提供失败的前提条件响应

java - 在数据库中使用 DXL 导入 SSJS 脚本库

java - 我无法输入字母,无法输入数字

java - 如何从 StringBuffer 中删除字符?