我正在使用以下正则表达式 "location in\\((.*?)\\)"
针对以下字符串:pro 300\nlocation in ("aaa","bbb")
根据 java 的在线正则表达式测试,结果应该是 "aaa","bbb" 但是当我在 java 代码中运行它时,如下所示:
conditions.replaceAll("location in \\((.*?)\\)", "$1");
我得到 pro 300"aaa","bbb"
我做错了什么?提前致谢。
最佳答案
replaceAll()
正在替换与正则表达式的 group(0)
匹配的 conditions
部分。
要仅检索 (...)
中的部分,您需要使用:
Pattern p = Pattern.compile("location in \\((.*?)\\)");
Matcher m = p.matcher(conditions);
if (m.find())
{
String s = m.group(1);
}
这将检索正则表达式 (.*?)
关于java - 正则表达式未按预期工作 - JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31125584/