2016-04-01 3 views
1

исключения из следующего спискаматча всего имя файла с определенным расширением для конкретного имени файла регулярного выражения

"foo.exe" 
"foo.dmg" 
"baz.exe" 
"this-is-another-file-name.exe" 
... 

, что Java регулярного выражения будет соответствовать каждой строке, которые заканчиваются ".exe" за исключением определенной строки "baz.exe"

Спасибо!

EDIT: Я пытался (?=\.exe$)(?!baz\.exe)

+0

Если вы пытались что-нибудь пожалуйста, напишите его. –

+0

Что вы пробовали? Что именно происходит неправильно? Вы получаете какие-либо ошибки? Каковы эти ошибки? Что вы пытались сделать, чтобы исправить эти ошибки? Что случилось, когда вы это сделали? Не забудьте включить эти вещи, когда вы зададите свой вопрос. Следуйте этому руководству, чтобы убедиться, что ваши вопросы имеют высокое качество: https://stackoverflow.com/help/how-to-ask –

ответ

2

Это будет look behind на наличие baz и отбрасывание матч, если он присутствует. Я предполагаю, что вы проверяете filenames по одному. Следовательно, используется анкер ^ и $.

Regex:^(?!baz).*\.exe$

Regex101 Demo

1

Как отметил @Wajahat, этот вопрос можно ответить прямо из Regex: match everything but (первый Google ответ тоже).

^(?!.*(baz)).*exe

  • foo.exe: спички
  • baz.exe: не соответствует
  • whaterver.exe: спички
Смежные вопросы