我需要一个正则表达式来匹配除Q之外的任何字符或单词。
我尝试使用表达式
/\b((?!(Q)).+?)\b/
但它不起作用!
答案 0 :(得分:8)
您是否试图禁止使用“Q”这个词,或者包含“Q”的词?
使用双重否定:“(\ w而不是Q)的字符”是“不是(不是 - 或w或Q)的字符。”
[^\WQ] => /\b([^\WQ]+)\b/
您也可以使用
(?!Q)\w => /\b((?:(?!Q)\w)+)\b/
我认为第一个更快。
/\b(Q\w+|[^\WQ]\w*)\b/
或
/\b(?!Q\b)(\w+)\b/
答案 1 :(得分:1)
您可以使用此正则表达式
\b(?!\w*Q)(\w+)\b
正则表达式出现问题:
1] (?!Q)
会检查此当前位置后是否Q
。与\b(?!Q)
一起,您正在检查特定字词是否开始与Q
。
您可以使用\b(?!\w*Q)
来检查Q
任何地方,并使用
2] .+?
正在使\b
多余,因为.
也会匹配space
。
因此,如果您的输入为Hello World
且\b.+?\b
正则表达式,则其匹配Hello
,space
,World
。您应该使用\b\w+\b
< / p>