我正试图为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
这样的东西,但没有效果。如果有人能帮我,我将不胜感激。
我有没有提到我讨厌写regEx?
我会跳过include指令,只为明确排除的所有内容添加exclude指令。然后将隐含地包括其他文件。
我不知道你的文件结构是什么样子的,所以我可能错了,但也许这会奏效:
<fileset dir="js" excludes="*copy*" />
尝试匹配(?m)^(?=.js)((?!copy.js).)$
更多信息可以在下面的链接中找到。出色的职位。
正则表达式,以匹配不匹配';不包含一个单词吗?