gpt4 book ai didi

regex - 负前瞻正则表达式可忽略单词列表

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

我正在尝试编写一个正则表达式,该表达式将查找带空格的任何单词,只要该单词不是ANDORNOT即可。

在搜索类似问题后,我尝试了否定的前瞻,这是我当前的正则表达式:(?!AND|OR|NOT).*?\\s
如果我尝试使用“AND”进行匹配,则会在“ND”上找到匹配项。如果我尝试使用“OR”,则得到“R”,如果我尝试使用“NOT”,则得到“OT”。

有人可以帮忙吗?

最佳答案

尝试使用以下模式:

\\b(?!(?:AND|OR|NOT)\\b)[a-zA-Z]+\\s

我添加了一些单词边界(\b),并使用了字符类 [a-zA-Z](在不区分大小写的上下文中,可以将其替换为[a-z]),以避免使用懒惰的量词。

或更高的表现(不区分大小写):
\\b(?>(?>[b-mp-z])|(?!(?>and|or|not)\\b)[aon])(?>[a-z]*)\\s

如果要匹配:

双引号之间的
  • 词,不带双引号或空格:
  • (?<=(\"?)\\b)(?!(?:AND|OR|NOT)\\b)[a-zA-Z]+(?=\\1(?:\\s|$))
    双引号和双引号之间的
  • 词:
  • (\"?)(?<=\\b)(?!(?:AND|OR|NOT)\\b)[a-zA-Z]+\\1(?=\\s|$)
    括号之间不带括号的
  • 词:
  • (?<=(\\()\\b)(?!(?:AND|OR|NOT)\\b)[a-zA-Z]+(?=(?(1)\\)|(?:\\s|$)))
    括号和双引号之间的
  • 单词,不能同时使用:
  • (?<=(\\()?(\"?)\\b)(?!(?:AND|OR|NOT)\\b)[a-zA-Z]+(?=(?(1)\\)|\\2(?:\\s|$)))
    没有您想要的所有单词而不能与非的
  • 单词:
  • \\b(?!(?:AND|OR|NOT)\\b)[a-zA-Z]+\\b

    关于regex - 负前瞻正则表达式可忽略单词列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16498965/

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