我需要一个正则表达式来匹配除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/