如何创建模式不允许一些单词集?

时间:2014-12-18 06:18:36

标签: regex

我可以通过模式设置一些单词。

示例:

^(polo shirt|tshirt)$

live

但我想禁止一些逐字逐句。

1 个答案:

答案 0 :(得分:1)

如果您不想允许单词shirt

,请使用以下正则表达式
^(?!.*\b(?:polo shirt|tshirt)\b).*$

DEMO

开始时

(?!.*\b(?:polo shirt|tshirt)\b)否定前瞻断言我们要匹配的字符串不包含子字符串tshirtpolo shirt

使用锚点,

^(?!^(?:polo shirt|tshirt|other)$)\w+(?:\s+\w+)*$

DEMO

只需使用pcre动词(*SKIP)(*F)

即可
    ^(?:polo shirt|tshirt)$(*SKIP)(*F)|^.+

    |<-strings you don't want ------->|<-strings you want

DEMO

这会跳过仅包含单词polo shirttshirt的行,并匹配所有其他行。