我正在尝试为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?
发布于 2012-03-29 17:38:50
我会跳过include指令,只为显式排除的内容添加exclude指令。然后将隐式包含其他文件。
我不知道你的文件结构是什么样子的,所以我可能对这个错误,但这可能会起作用:
<fileset dir="js" excludes="*copy*" />发布于 2012-03-29 18:22:34
尝试匹配(?m)^(?=.js)((?!copy.js).)$
更多信息可以在下面的链接中找到。很棒的帖子。
Regular expression to match a line that doesn't contain a word?
https://stackoverflow.com/questions/9922672
复制相似问题