#regex
#регулярное выражение
Вопрос:
Я хотел бы регулярное выражение, которое включает все имена файлов с определенным окончанием, например, «.err», но не в том случае, если это имя файла начинается, например, с «test». Другими словами, включите «* .err»-файлы, но не «test-whatever.err»-файлы.
Я обнаружил, что
(?!test.*.err$).*.err
исключает тестовые файлы * .err и это
.*.err
включает все файлы * .err, но мне нужны они оба в одном выражении.
Также необходимо учитывать тот факт, что «.err» может быть записан как «.ERR» или «.Err», чтобы это регулярное выражение работало правильно для меня.
Все мысли и идеи приветствуются!
С уважением Рикард
Комментарии:
1. Вы должны указать язык, на котором вы используете регулярное выражение. Это даже написано в описании тега Regex.
Ответ №1:
Используйте это
^(?i)(?!test).*.err$
Смотрите его здесь онлайн на Regexr
Важные части, которые отличаются от ваших:
Используйте якоря. ^
и $
привязывают ваш шаблон к началу и концу строки
(?i)
делает его «ignorecase», так что err
это также будет соответствовать «ERR» или «ErR», а test
также будет соответствовать «Test» и TEST …
Вы не указали язык, но эти функции должны работать с большинством вариантов.
Ответ №2:
Как насчет этого:
^(?!test).*.err$