perl正则表达式匹配除Q以外的任何"单词字符"

use*_*094 3 regex perl mod-perl

我需要一个正则表达式来匹配除Q以外的任何字符或单词.

我尝试使用表达式

/\b((?!(Q)).+?)\b/ 
Run Code Online (Sandbox Code Playgroud)

但它不起作用!

ike*_*ami 8

你是在试图禁止"Q"这个词,还是包含"Q"的词?


禁止包含"Q"的单词

使用双重否定:"(\ w而不是Q)的字符"是"不是(不是 - 或W)的字符".

[^\WQ]        => /\b([^\WQ]+)\b/
Run Code Online (Sandbox Code Playgroud)

你也可以用

(?!Q)\w       => /\b((?:(?!Q)\w)+)\b/
Run Code Online (Sandbox Code Playgroud)

我认为第一个更快.


禁止"Q"这个词

/\b(Q\w+|[^\WQ]\w*)\b/
Run Code Online (Sandbox Code Playgroud)

要么

/\b(?!Q\b)(\w+)\b/
Run Code Online (Sandbox Code Playgroud)