我想在 Java 中使用 str.replaceAll 替换引号外的字符串,但不影响引号内的单词
如果我用 Pie 替换 Apple:
输入:苹果“苹果苹果苹果”
期望的输出:馅饼“Apple Apple Apple”
请注意引号内的单词未被修改
这将如何完成?所有帮助表示赞赏!
最佳答案
使用先行搜索 Apple
以确保它没有被引号包围:
(?=(([^"]*"){2})*[^"]*$)Apple
并替换为:
Pie
更新:
根据下面的评论,您可以使用:
代码:
String str = "Apple \"Apple\"";
String repl = str.replaceAll("(?=(([^\"]*\"){2})*[^\"]*$)Apple", "Pie");
//=> Pie "Apple" "Another Apple Apple Apple" Pie
关于java - 如何替换引号外的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28771476/