gpt4 book ai didi

java - 括号中不包含特定单词的文本的正则表达式

转载 作者:行者123 更新时间:2023-12-01 14:04:04 25 4
gpt4 key购买 nike

我发现了一些表达方式,例如

\((.*?)\) 

它可以很好地查找括号中带有括号的任何文本,例如(文本)

^((?!.*(word1|word2|word3)).*)+

查找不包含任何特定单词(例如word4abcd)的文本,并且不适用于示例word1测试

如何合并它们以查找括号中不包含这些单词的文本,如(示例),而不是(示例单词2)

提前致谢

最佳答案

第一个正则表达式使用不情愿的量词*?来确保第一个可用的右括号在左括号之后匹配。第二个正则表达式使用零宽度负先行组(即 (?!...) 结构)来防止匹配某些单词。为了结合这些技巧,我们正在考虑这样的事情:

\(((?!某物).*?)\)

问题是用什么来代替某物。简单地将 .*(word1|word2) 放在那里是行不通的:这也会禁止 word1word2 在括号之外。将 .* 替换为 .*? 不会改变这一点。有效的是 [^)]*(word1|word2) 它将匹配任何不等于 ) 的字符序列,后跟 word1单词2

结果表达式为

\(((?![^)]*(word1|word2)).*?)\)

它将匹配不包含 word1word2 的括号表达式。

关于java - 括号中不包含特定单词的文本的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19077711/

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