2014-07-15 3 views
3

Я хочу включить все строки, начиная с a до m. Это можно сделать, используя [a-m] * regex , но мне не нужен случай, когда строка начинается с «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

Если вы хотите включить все строки, начинающиеся с 'a' в' M' то, как это то, что все другие случаи проходят? Единственными, которые должны пройти исключение 'special_string', является' assets/filename.ext' и 'bombay.txt' – hwnd

+0

@Yesuagg: На каком языке/инструменте вы выполняете это регулярное выражение? – anubhava

+0

@hwnd: Мой плохой. Обновлены тестовые примеры. – yesuagg

ответ

3

Используйте отрицательного предпросмотра здесь. Если вы хотите сопоставить все строки, начинающиеся с a, через m, за исключением строк, начинающихся с «deal_string», вы можете использовать :.

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

Live Demo

+0

Спасибо. Это сработало. :) – yesuagg

Смежные вопросы