2011-01-09 229 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].*)))))