Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 不使用';不匹配单词列表_Regex_Regex Negation - Fatal编程技术网

Regex 不使用';不匹配单词列表

Regex 不使用';不匹配单词列表,regex,regex-negation,Regex,Regex Negation,我需要一个正则表达式来匹配我所拥有的特定列表中没有的单词 这是一个系统,我还没有作出,但我需要使用过滤。显然,它根据给定的正则表达式过滤字段,字段只包含一个单词。所以我想要全词匹配 例如,我想要番茄或土豆以外的任何单词,我的正则表达式到目前为止: ^(?!(Potato|Tomato)) 我正在测试我的正则表达式。 当我输入马铃薯时,我得到: 您的模式与主题字符串不匹配 这是我期望的结果,但每当我输入除西红柿和土豆以外的任何东西,比如“巧克力”,我就会得到: 未提取匹配组 这意味着您的模式匹配

我需要一个正则表达式来匹配我所拥有的特定列表中没有的单词

这是一个系统,我还没有作出,但我需要使用过滤。显然,它根据给定的正则表达式过滤字段,字段只包含一个单词。所以我想要全词匹配

例如,我想要番茄或土豆以外的任何单词,我的正则表达式到目前为止:

^(?!(Potato|Tomato))
我正在测试我的正则表达式。 当我输入马铃薯时,我得到:

您的模式与主题字符串不匹配

这是我期望的结果,但每当我输入除西红柿和土豆以外的任何东西,比如“巧克力”,我就会得到:

未提取匹配组

这意味着您的模式匹配,但没有(捕获) (组)匹配主题字符串中的任何内容

我尝试将我的表情改为:

([[:alnum:]])*^(?!(Potato|Tomato))
意思是,除了“西红柿”和“土豆”之外,我想要任何字母数字字符的组合,但是我得到了相同的结果


我不知道如何更改我的正则表达式,以便它有一个符合我需要的捕获组。

您的正则表达式是一个零长度正则表达式。试试这个:
^(?(土豆|西红柿))\w*
。那会配巧克力的。如果您想捕获巧克力,请执行以下操作:
^(?(土豆|番茄))(\w*)


您正在使用的正则表达式

^(?!(Potato|Tomato))
此正则表达式的意思是“在开始处匹配零长度字符串,该字符串后面不跟‘Potato’或‘Tomato’”

您正在使用的正则表达式是一个负前瞻。裁判: 此外,它不会捕获任何内容,因为此正则表达式中唯一的捕获组只能匹配您不允许的“土豆”或“西红柿”

捕获组由圆括号定义,但如果左圆括号前面有一个“?”,则不将其视为捕获组

如果您想在上面的正则表达式中有一个捕获组,请使用以下命令:

^((?!(Potato|Tomato)))
现在,如果您针对字符串“括号”测试这个正则表达式,您将在[0-0]处得到一个0长度匹配

您要查找的正则表达式是:

^(?!(Potato|Tomato)$)(\w*)

你使用什么语言/工具?您似乎在编写C#代码,如果是针对这种语言,最好使用上面的正则表达式,因为它不会匹配它应该匹配的“Potatochocolate”。