2012-03-29 2 views
1

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

file01.js 
file02.js 
file02-copy.js 

хочет выражение, которое находит первые два файл и игнорирует один с «-копией» на конце. Я попытался с помощью <include> 'S и <excludes> походит, так:

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

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

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

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

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

+0

Просто так мы не решить проблему неправильно, не могли бы вы обрисовать структуру файлов/каталогов для файлов? Являются ли ваши файлы * .js в файле "." или в каталоге «js /»? – claesv

ответ

2

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

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

<fileset dir="js" excludes="*copy*" /> 
+0

Это прекрасно работает, и да, это правильная структура каталогов. Большое спасибо! – MeanwhileInHell

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