Regex 忽略单词列表的负前瞻正则表达式

Regex 忽略单词列表的负前瞻正则表达式,regex,Regex,我正在尝试编写一个正则表达式,它将查找后跟空格的任何单词,只要该单词不是和,或,不是 在搜索类似问题后,我尝试了一种消极的前瞻,这是我当前的正则表达式:(?!AND | OR | NOT)。*?\\s 如果我用“AND”来试这个,我会在“ND”上找到一个匹配项。如果我试着用“或”我得到“R”,如果我试着用“不”我得到“OT” 有人能帮忙吗?试试这个模式: \\b(?!(?:AND|OR|NOT)\\b)[a-zA-Z]+\\s 我添加了一些单词边界(\b),并使用字符类[a-zA-Z](在不区

我正在尝试编写一个正则表达式,它将查找后跟空格的任何单词,只要该单词不是
不是

在搜索类似问题后,我尝试了一种消极的前瞻,这是我当前的正则表达式:
(?!AND | OR | NOT)。*?\\s

如果我用“AND”来试这个,我会在“ND”上找到一个匹配项。如果我试着用“或”我得到“R”,如果我试着用“不”我得到“OT”

有人能帮忙吗?

试试这个模式:

\\b(?!(?:AND|OR|NOT)\\b)[a-zA-Z]+\\s
我添加了一些单词边界(\b),并使用字符类
[a-zA-Z]
(在不区分大小写的上下文中,可以将其替换为[a-Z]),以避免使用惰性量词

或更高性能(不区分大小写):

如果要匹配:

  • 不带双引号或空格的双引号之间的单词:

(?嗯,我不能100%确定我是否理解正确,但是你能试试这个,看看它是否是你想要的吗

(?<=\bAND|\bOR|\bNOT)\s.*
或:


试试这个--
(?!(AND | OR | NOT))。\s
在那里试过,但在第一个字符后仍然返回匹配项。我们可以看到您试图匹配的字符串吗?这是什么语言?我用C语言做。我试图解析发送给我的查询。例如:Name:the“Special”一个和XYZ我有另一个获取名称参数的查询。XYZ是一个默认字段的值,因此发送时没有任何分隔符,因此我需要在不获取AND的情况下获取它。不确定这是否有意义:)这似乎可行,但我需要它匹配“和”(例如名称:“特殊”和“XYZ”,我将查询更改为:\\b(?!(?:AND | OR | NOT)\\b)[a-zA-Z\\\\“]+\\s(添加在\\\\”末尾),但它只捕获单词中的最后一个“特殊”和XYZ。有什么建议吗?@user2367873:你想捕获双引号之间的单词,但你想捕获带双引号的单词还是不带双引号的单词?我想我现在有了,我添加了一个“?(?在开始时捕获任何引号或括号,并更改结束部分以捕获任何内容。基本上,我正在尝试分析一个具有不同可能性的大型查询。我有两个正则表达式捕获前两个可能性,这一个正则表达式用于获取任何不属于关键字的内容。我现在的查询:\“?(?)\b(?(?):和|或|不)\b).+?\\s我认为这将捕获0-1“或(在开始时,然后边界不给出AND |或| not,然后取消冻结任何内容,直到一个空格。这听起来正确吗?@user2367873:我重申我的问题:您想要结果中的
“XYZ”
XYZ
?对不起,我想要“XYZ”“基本上,我想抓住任何不是和,或不是的东西。所以这只会匹配后面的和或不是的词?对吗,这是一个积极的回顾?我想在这种情况下它会起作用(其中一个词是第一个词)但如果不是,就不会。我需要它来匹配任何不是它们的单词,这样它就可以是:Name:Test IBM我有另一个表达式,得到Name:Test。我需要这个表达式来把IBM带到这里。我有几个表达式,每个表达式都有不同的大小写,这个表达式用来捕捉剩下的任何单词,但不是那3个关键字。等等,我刚刚意识到有什么…右边还有更多的字符吗?如果没有,您可以使用一个简单的
[^\s]+$
\w+$
是的,不幸的是,可能会有:/我开始认为有一种更简单的方法可以做到这一点,但是@Casimir上面的回答让我现在有了一个可用的版本。谢谢你的帮助!我需要更多地研究我的正则表达式!好的。祝你在表达式方面好运!^^我也会尝试学习更多。我认为我不能用c我用了一个正则表达式,比如Casimir的xD
(?<=\bAND|\bOR|\bNOT)\s.*
\w+$
[^\s]+$