Java使用正则表达式从字符串中删除文本

Java使用正则表达式从字符串中删除文本,java,regex,Java,Regex,我需要使用String类的方法replaceAll从一个大字符串中提取配置路径。 我设法用正则表达式排除了字符串的左侧,但是右侧有问题。这是: /home/user/qa/jboss-eap-7.2/standalone/configuration", "jboss.server.data.dir" : "/home/user/qa/jboss-eap-7.2/standalone/data", "jboss.server.deploy.dir" : "/home/user/qa/jboss-e


我需要使用String类的方法replaceAll从一个大字符串中提取配置路径。 我设法用正则表达式排除了字符串的左侧,但是右侧有问题。这是:

/home/user/qa/jboss-eap-7.2/standalone/configuration", "jboss.server.data.dir" : "/home/user/qa/jboss-eap-7.2/standalone/data", "jboss.server.deploy.dir" : "/home/user/qa/jboss-eap-7.2/standalone/data/content", "jboss.server.log.dir" : "/home/user/qa/jboss-eap-7.2/standalone/log", "jboss.server.name" : "fedora", "jboss.server.persist.config" : "true", "jboss.server.temp.dir" : "/home/user/qa/jboss-eap-7.2/standalone/tmp", "line.separator" : "\n", "logging.configuration" : "file:/home/user/qa/jboss-eap-7.2/standalone/configuration/logging.properties", "module.path" : "/home/user/qa/jboss-eap-7.2/modules", "org.apache.xml.security.ignoreLineBreaks" : "true", "org.jboss.boot.log.file" : "/home/user/qa/jboss-eap-7.2/standalone/log/server.log", "org.jboss.resolver.warning" : "true",
所以我只想捕获字符串/home/user/qa/jboss-eap-7.2/standalone/configuration 我想到了这个:

// String a contains the above text
String b = a.replaceAll("^\".*","");
System.out.println(b);
这应该删除所有内容,从第一次出现引号(“)开始。 但是,当返回完整字符串时,它不会按预期工作。 有人能帮我找出原因吗?
谢谢

您不需要这里的
^
字符串锚的开始。请尝试
“*”
非常感谢。它成功了!这让我有点困惑为什么^字符导致表达式失败,但我将在reg expr文档中找到它。
^
表示匹配必须从字符串的开头开始,当您不使用
^
时,它将尝试查找
的第一个匹配项“
遍历整个字符串,然后继续使用剩余的模式。这是否回答了您的问题?用两个不同的正则表达式切断字符串的开头和开头对我来说似乎有点低效。看看Java文档中的模式/匹配器类,这样您就可以提取目标字符串,而无需启动两次正则表达式测试。