gpt4 book ai didi

java - 正则表达式排除引号内的匹配项

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:47 25 4
gpt4 key购买 nike

我正在从事这个相当大的重构项目,我正在使用 intellij 的查找/替换正则表达式来帮助我。

这是我正在使用的正则表达式:

\b(?<!\.)Units(?![_\w(.])\b

我发现大多数对我的目的没有用的匹配是引号内的字符串匹配,例如:“units”

我想找到一种方法,让上面的表达式在找到引号之间的匹配字符串时不匹配...

提前致谢,这个地方太棒了!

最佳答案

假设引号总是在给定行上配对,您可以在偶数个引号前后创建匹配项,并确保整行都匹配:

^([^"]*("[^"]*")*[^"]*)*\b(?<!\.)Units(?![_\w(.])\b([^"]*("[^"]*")*[^"]*)*$

这是有效的,因为片段

([^"]*("[^"]*")*[^"]*)*

只会匹配成对的引号。通过添加开始和结束行 anchor ,它会强制正则表达式左侧和右侧的引号为偶数。

这不会正确处理嵌入的转义引号,多行引号字符串会很麻烦。

关于java - 正则表达式排除引号内的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1229208/

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