正则表达式不包含多个单词

Abh*_*ram 3 javascript regex

如何使用正则表达式避免字符串中的某些单词

字符串不应包含测试,使用以下表达式的示例单词

^((?!(sample|test)).)*$
Run Code Online (Sandbox Code Playgroud)

我可以做,但在某些情况下会失败

 example: 
    1) this is a test case 
    2) this is a testing area 
Run Code Online (Sandbox Code Playgroud)

在上述两个示例案例中

1.它有一个单词测试,所以它工作得很好,但在示例
2)它没有一个应该允许的单词测试

有什么办法可以实现这一目标吗?感谢您的宝贵时间和回复

Pus*_*shi 5

您需要\b在单词周围使用,以便它们允许匹配,仅当它们不作为整个单词出现时。尝试使用这个,

^(?:(?!\b(sample|test)\b).)*$
Run Code Online (Sandbox Code Playgroud)

此外,最好将组设为非捕获,除非您打算使用它们的值。

正则表达式演示

编辑:

为了使其区分大小写,i通过在正则表达式i之后放置来启用标志/。JS演示,

^(?:(?!\b(sample|test)\b).)*$
Run Code Online (Sandbox Code Playgroud)

  • 你可以像`/regex/i`一样将`i`放在正则表达式中的`/`之后,并使其不区分大小写。 (2认同)