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

我尝试使用表达式

/\b((?!(Q)).+?)\b/

但它不起作用!

最佳答案

您是否要禁止使用“Q”或包含“Q”的单词?

禁止包含“Q”的单词

使用双重否定:“(\ w而非Q的字符)”是“(\ w而非Q的字符)”([^\WQ])。

/\b([^\WQ]+)\b/

您可以使用环视功能(例如\w(?<!Q))执行基本的集合算法。
/b((?:\w(?<!Q))+)\b/

有一个实验性功能可以对字符类执行集合算法。
# Use at your own risk.
use experimental qw( regex_sets );

/\b(?[ \w - [Q] ])+)\b/

禁止使用“Q”一词
/\b(Q\w+|[^\WQ]\w*)\b/

要么
/\b(?!Q\b)(\w+)\b/

要么
# Use at your own risk.
use experimental qw( regex_sets );

/\b(Q\w+|(?[ \w - [Q] ])+)\w*)\b/

10-04 23:04
查看更多