我在Flex中使用此正则表达式来查找每个2个字母的大写字词:
[A-Z]{2} printf("Found %s", yytext);
但是我如何打印除SN ??
之外的每个单词谢谢!
答案 0 :(得分:4)
在字符串NA
上使用时,正则表达式也会匹配子字符串,例如SA
和NASA
。
您需要使用word boundaries来防止这种情况发生。然后,使用否定lookahead assertion排除SN
:
\b(?!SN)[A-Z]{2}\b
编辑:哦,那 Flex:)
嗯,POSIX正则表达式引擎不知道外观。你需要拼写出来:
\b(S[A-MO-Z]|[A-RT-Z]N|[A-MO-RT-Z]{2})\b