2011-01-09 175 views
0

我的应用程序中有以下字符串。正则表达式排除字符串

/admin/stylesheets/11 

/admin/javascripts/11 

/contactus 

我想要做的就是写一个正则表达式来捕获字符串以外的任何以“管理员”

基本上我正则表达式应该排除双方

只捕获

/contactus 

/admin/stylesheets/11 

/admin/javascripts/11 

捕获所有我写的

/.+/ 

我写了/(admin).+/它捕获了一切以'admin'开始。我怎么能做到相反。我的意思是让一切不以 '管理员'

在此先感谢

欢呼

sameera

编辑 - 感谢所有的答案

我使用红宝石/ Rails3中和试图在我的routes.rb文件中映射路线

我的原始路线文件如下

match '/:all' => 'page#index', :constraints => { :all => /.+/ } 

,我想正则表达式替换/.+/

感谢

+2

你使用什么语言/正则表达式实现? – Gumbo 2011-01-09 14:48:14

+1

这是所有的正则表达式在做什么?如果是这样,你最好寻找一个像`string.beginswith()`这样的内置函数。 – marcog 2011-01-09 14:52:15

回答

4

如果您正在使用支持look-ahead assertions语言/正则表达式的实现,你可以这样做:

^/(?!admin/).+/ 

否则,如果您只能使用基本语法,则需要执行以下操作:

^/([^a].*|a($|[^d].*|d($|[^m].*|m($|[^i].*|i($|[^n].*)))))