与单词列表不匹配的单词的正则表达式
Regular expression for word that doesn't match a list of words
我需要一个正则表达式来匹配不在我的特定列表中的单词。
这是我没有做的系统,但我需要用它来过滤。显然它根据给定的正则表达式过滤字段,这些字段只包含一个词。所以我想要整个单词匹配。
例如,我想要除了 tomato 或 potato 之外的任何词,我的正则表达式目前为止:
^(?!(Potato|Tomato))
我正在测试我的正则表达式 here。
当我输入 Potato 我得到:
Your pattern does not match the subject string.
这是我期望的结果,但是每当我输入除番茄和土豆以外的任何其他内容时,例如 "chocolate" 我得到:
No match groups were extracted.
This means that your pattern matches but there were no (capturing
(groups)) in it that matched anything in the subject string.
我试着把我的表情改成:
([[:alnum:]])*^(?!(Potato|Tomato))
意思是,我想要除单词 "Tomato" 和 "Potato" 之外的任何字母数字字符组合,但我得到了相同的结果。
我不知道如何更改我的正则表达式,所以它有一个 捕获组 符合我的需要。
您的正则表达式是零长度正则表达式。试试这个:^(?!(Potato|Tomato))\w*
。那将与巧克力相配。如果你想捕获巧克力,那么这样做:^(?!(Potato|Tomato))(\w*)
您正在使用的正则表达式
^(?!(Potato|Tomato))
这个正则表达式的意思是"match the zero length string at the start which is not followed by 'Potato' or 'Tomato'"
您正在使用的正则表达式是负前瞻。参考:here
此外,它不会捕获任何内容,因为此正则表达式中唯一的捕获组只能匹配您不允许的 "Potato" 或 "Tomato"。
捕获组由圆括号定义,但如果有“?”在左圆括号前面,不作为捕获组。
如果你想在上面的正则表达式中有一个捕获组,使用这个:
^((?!(Potato|Tomato)))
现在,如果您针对字符串 "bracket" 测试此正则表达式,您将在 [0-0] 处获得长度为 0 的匹配项。
您要查找的正则表达式是:
^(?!(Potato|Tomato)$)(\w*)
我需要一个正则表达式来匹配不在我的特定列表中的单词。
这是我没有做的系统,但我需要用它来过滤。显然它根据给定的正则表达式过滤字段,这些字段只包含一个词。所以我想要整个单词匹配。
例如,我想要除了 tomato 或 potato 之外的任何词,我的正则表达式目前为止:
^(?!(Potato|Tomato))
我正在测试我的正则表达式 here。 当我输入 Potato 我得到:
Your pattern does not match the subject string.
这是我期望的结果,但是每当我输入除番茄和土豆以外的任何其他内容时,例如 "chocolate" 我得到:
No match groups were extracted.
This means that your pattern matches but there were no (capturing (groups)) in it that matched anything in the subject string.
我试着把我的表情改成:
([[:alnum:]])*^(?!(Potato|Tomato))
意思是,我想要除单词 "Tomato" 和 "Potato" 之外的任何字母数字字符组合,但我得到了相同的结果。
我不知道如何更改我的正则表达式,所以它有一个 捕获组 符合我的需要。
您的正则表达式是零长度正则表达式。试试这个:^(?!(Potato|Tomato))\w*
。那将与巧克力相配。如果你想捕获巧克力,那么这样做:^(?!(Potato|Tomato))(\w*)
您正在使用的正则表达式
^(?!(Potato|Tomato))
这个正则表达式的意思是"match the zero length string at the start which is not followed by 'Potato' or 'Tomato'"
您正在使用的正则表达式是负前瞻。参考:here 此外,它不会捕获任何内容,因为此正则表达式中唯一的捕获组只能匹配您不允许的 "Potato" 或 "Tomato"。
捕获组由圆括号定义,但如果有“?”在左圆括号前面,不作为捕获组。
如果你想在上面的正则表达式中有一个捕获组,使用这个:
^((?!(Potato|Tomato)))
现在,如果您针对字符串 "bracket" 测试此正则表达式,您将在 [0-0] 处获得长度为 0 的匹配项。
您要查找的正则表达式是:
^(?!(Potato|Tomato)$)(\w*)