RegEx排除字符串

时间:2011-01-09 14:45:45

标签: regex ruby-on-rails-3

我的申请表中有以下字符串。

/admin/stylesheets/11

/admin/javascripts/11

/contactus

我想要做的是编写一个正则表达式来捕获以“admin”

开头的字符串以外的任何内容

基本上我的正则表达式只能捕获

/contactus

排除

/admin/stylesheets/11

/admin/javascripts/11

捕获所有我写的

/.+/

我写了/(admin).+/,它捕获了以“admin”开头的所有内容。我怎么能这样做呢。我的意思是让一切都不是以'admin'开头

提前致谢

欢呼声

sameera

编辑 - 感谢大家的答案

我正在使用ruby / Rails3并尝试在routes.rb文件中映射路由

我的原始路线文件如下

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

我想让RegEx取代/.+/

感谢

1 个答案:

答案 0 :(得分:4)

如果您使用的语言/正则表达式实现支持look-ahead assertions,则可以执行以下操作:

^/(?!admin/).+/

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

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