2014-07-15 39 views
3

我想包含從a到m開始的所有字符串。 這可以使用[a-m] *正則表達式 但我不希望字符串以「deal_string」開頭的情況。這是什麼正則表達式?正則表達式:匹配一個模式,但排除一個案例

測試用例:

assets/filename.ext   -> pass 
deal_string/filename.ext  -> fail 
deal_string.ext    -> fail 
deal_string_1.ext    -> fail 
deal_draft.txt    -> pass 
assets_deal_string.txt  -> pass 
bombay.txt     -> pass 
zombie.srt     -> fail 
some_deal_string.txt   -> fail 
zobie_special_string.txt  -> fail 
+1

如果要包括從'了'開始'M'那麼是什麼讓所有的其他情況下通過的所有字符串?除了'special_string'外,唯一應該通過的是'assets/filename.ext'和'bombay.txt' – hwnd

+0

@Yesuagg:你在使用哪種語言/工具正則表達式? – anubhava

+0

@hwnd:我的不好。更新測試用例。 – yesuagg

回答

3

使用負先行這裏。如果要匹配以am開頭的所有字符串(不包括以「deal_string」開頭的字符串),則可以使用:.

^(?!deal_string)[a-m].*$ 

Live Demo

+0

謝謝。這工作。 :) – yesuagg

相關問題