我正在尝试为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?
答案 0 :(得分:2)
我会跳过include指令,只为明确排除的所有内容添加exclude指令。然后将隐式包含其他文件。
我不知道你的文件结构是什么样的,所以我对这个可能是错的,但也许这样就可以了:
<fileset dir="js" excludes="*copy*" />
答案 1 :(得分:0)
尝试匹配(?m)^(?=。 js)((?!copy.js)。) $
更多信息可在以下链接中找到。优秀的帖子。
Regular expression to match a line that doesn't contain a word?