如何匹配特定字符串以外的所有字符串

时间:2014-06-08 02:12:55

标签: regex

要匹配除元音之外的所有字符,我们可以使用[^aeiou]

我想知道

  • 如何匹配特定字符串以外的所有字符串?例如,我想匹配一个不是dog的字符串。因此,catskymike都将匹配。

  • 如何匹配除少数字符串以外的所有字符串,或正则表达式以外的其他字符串? 例如,我想匹配一个不是c.t的字符串。因此skymike都匹配,但catcut不匹配。

感谢。

1 个答案:

答案 0 :(得分:3)

<强> 1。如何匹配特定字符串以外的所有字符串

^(?!your_string$).*$

<强> 2。如何匹配除少数字符串以外的所有字符串

^(?!(?:string1|string2|string3)$).*$

这是如何运作的?

  1. 想法是使用否定前瞻(?!来检查字符串是否仅仅由要避免的字符串组成。如果否定前瞻(这是一个断言)成功,.*$会匹配字符串末尾的所有内容。
  2. 请注意在开头使用^锚点,以确保我们位于字符串的开头。
  3. 请注意否定前瞻中的$锚点,以确保我们排除your_string,如果它确实是整个字符串,但我们不排除your_string and more
  4. <强>参考

    1. Mastering Lookahead and Lookbehind
    2. Negative Lookaheads