Шаблон RegEx для исключения имени файла с определенной символьной строкой - PullRequest
1 голос
/ 29 марта 2012

Я пытаюсь написать регулярное выражение для задачи Ant, которое исключает файлы в каталоге, заканчивающиеся определенной последовательностью символов. Например, у меня есть следующие три файла:

file01.js
file02.js
file02-copy.js

Мне нужно выражение, которое находит первые два файла и игнорирует файл с «-copy» в конце. Я пытался использовать <include> и <excludes> вот так:

<fileset dir="." includes="js/">
    <include name="*.js"/>
    <exclude name="*copy*"/>
</fileset>

но, очевидно, потому что это JS-файл, он все еще включен. Поэтому я пытаюсь использовать регулярное выражение для сопоставления файлов (если у кого-то есть другое предложение, пожалуйста, предложите):

<fileset dir="." includes="js/">
    <containsregexp expression="...">
</fileset>

И здесь кроется моя проблема. Я не могу найти regEx, который подходит для меня. Я пробовал несколько вещей, таких как (\w*)(!-copy).js, но это ничего не делает. Если бы кто-нибудь мог мне помочь, я был бы очень благодарен.

Я упоминал, что я ненавижу пытаться писать регекс?

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Я бы пропустил директивы include и добавил бы только директивы exclude для всего, что явно исключено.Другие файлы затем будут неявно включены.

Я не знаю, как выглядит ваша файловая структура, поэтому я могу ошибаться в этом, но, возможно, это поможет:

<fileset dir="js" excludes="*copy*" />
0 голосов
/ 29 марта 2012

Попробуйте сопоставить для (? M) ^ (? =. js) ((?! copy.js).) $

Более подробную информацию можно найти по ссылке ниже. Отличный пост.

Регулярное выражение для соответствия строке, не содержащей слова?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...