不包含字符串abc的正则表达式

[^abc]表示不包含a、b、c中任意字符, 我想实现不包含字符串abc应该如何写表达式?

最简洁的写法:

\b((?!abc)\w)+\b
匹配由字母或数字或下划线或汉字组成的字串,但字串中不能出现abc

解释:
  \b 匹配单词的开始或结束;
  ?!exp 零宽负向先行断言,只会匹配后缀exp不存在的位置;
  \w 匹配字母或数字或下划线或汉字;
  + 重复一次或更多次;
  \b((?!abc)\w)+\b 匹配由字母或数字或下划线或汉字组成的字串,但字串中不能出现abc。

测试:
  http://www.regextester.com/

posted @ 2012-05-17 15:38  笑的自然  阅读(846)  评论(0编辑  收藏  举报