Regular Expression 排除字符串 不包含字符串

今天在写一个 Symfony 的路由匹配规则,查看文档的时候发现有一个 requirements 参数,可以对自定义的变量匹配正则表达式。用它匹配特定的字符串很容易,比如 requirements: { id: \d+ } 表示匹配一个或多个数字形式的 id,但我的要求是排除某些字符串之后的匹配,这个我就不知道怎么做了。

上网找了很多,最后还是 Google 帮我找到了想要的结果。

原文在这里:

http://www.cnblogs.com/deerchao/archive/2007/02/15/651411.html

deerchao的blog,文章详细叙述了作者的试验过程,很有意义,后面的评论也很有价值,最后的正则就是回复评论的人提供的,在这里我也顺便感谢一下!

简单说来,目标:当字符串中不包含 google 和 leakon 的时候,匹配字符串。

正则就是 \b((?!google|leakon)\w)+\b。

这里可能看得不是很清楚,我写了个 wiki,里面还有几个测试的例子,请大家看看:

http://wiki.leakon.com/RegularExpressionTips

Tags:

2 comments

Leave a Reply

Your email address will not be published.

*