java - 正则表达式未按预期工作 - JAVA

标签 java regex

我正在使用以下正则表达式 "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/

相关文章:

删除在 R 中开始和结束处包含句点的行

c# - 如何从这个字符串中获取日期?

java - 如果输入 < 1,如何让程序声明错误并退出

java - 从当前位置到 poi 的路线 android map v2

java:简单类型转换

python - 正则表达式忽略负向后查找和匹配之间的所有内容

python - 将具有多个表达式的 sed 转换为 python

java - 在方法中抛出异常

java - 客户端找不到 {} 的分派(dispatch)方法

java - 正则表达式方法