从 [ ] 组正则表达式中排除字符,同时仍在查找字符

Tom*_*ica 3 javascript regex

我想匹配所有不包含 letter 的单词l。我试过这个:

[a-z^k]+
Run Code Online (Sandbox Code Playgroud)

但显然^只在后面起作用[。如果只是 letter l,我想这会做:

[a-km-z]+
Run Code Online (Sandbox Code Playgroud)

当然,除了它只是将l-words 视为两个词这一事实之外:

图片说明

但这不是真正的问题,问题仍然与标题一样:

问:如何搜索字符列表,但排除另一个字符列表?

vks*_*vks 5

您需要使用\b单词边界来确保匹配不会在单词内开始和结束。

\b[a-km-z]+\b
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用先行创建排除列表。

\b(?:(?![l])[a-z])+\b
Run Code Online (Sandbox Code Playgroud)

regex101 上的演示