2015-04-02 3 views
0

Я не уверен, имеет ли смысл смысл, но я не был уверен, как это сказать. У меня есть строки (имена файлов), который выглядит какregex negative lookahead with wildcard

/aa/john/doe/xx/yy/xxTRUEyy.jar 
/bb/ee/john/doe/xx/yy/aaTRUE.jar 
/cc/john/doe/xx/yy/aaFALSE.jar 
/dd/john/deere/xx/yy/aaTRUE.jar 

мне нужен регулярное выражение, которое не соответствуют строкам, которые/джон/самка/в них, и баночке файл с ИСТИНОЙ как часть имени. (В приведенных выше примерах это должно соответствовать только строкам 3 и 4).

+0

Зачем вам нужен * отрицательный * lookahead? –

+0

CommuSoft, спасибо за ответ - однако я исказил проблему, которую я редактировал, - извините за это. – user1862830

+0

Как указано, ваши критерии будут соответствовать только последней строке, которая правильно соответствует @Willem Van Onsem. Вы должны отредактировать свой вопрос, чтобы устранить ложное требование строки номер три соответствия или улучшить вашу спецификацию в соответствии с тем, что вы пытаетесь достичь. – rivy

ответ

3

Вы можете использовать (?!) группу для выполнения отрицательного предпросмотра:

^(?!.*\/john\/doe\/).*TRUE[^\/]*\.jar$ 

должно быть достаточно. regex101 demo.

+0

Вы правы - мне не нужен взгляд - однако это потому, что я пропустил проблему, которую я сейчас редактировал. Так жаль об этом. – user1862830

+0

@ пользователь1862830: модифицировано, лучше? –

+0

Отлично - спасибо :-) – user1862830