gpt4 book ai didi

java - 正则表达式更改不在 ""之间的单词

转载 作者:行者123 更新时间:2023-11-30 11:31:11 25 4
gpt4 key购买 nike

我想替换不在引号之间的单词。

应该如何工作:

“英雄”——不变

“你是 super 英雄”——不变

我是英雄-改变

你是 super 英雄 - 改变

我试过了

word = word.replaceAll("(?!\")(.*)hero(.*)(?!\")","$1 零 $2") - 但它没有'工作

最佳答案

这个正则表达式应该适合你:

hero(?=(?:(?:[^\"]*\"){2})*[^\"]*$)

解释:这基本上意味着匹配文字文本 (hero) 如果它后跟偶数个双引号换句话说匹配所需的文本如果它在双引号之外。

测试:

String str = "hero \"dont-hero\"";
String repl = str.replaceAll("hero(?=(?:(?:[^\"]*\"){2})*[^\"]*$)", "FOO");
//repl = FOO "dont-hero"

现场演示:http://ideone.com/BXJxpw

关于java - 正则表达式更改不在 ""之间的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17353269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com