假设我们有下一个目录结构:
/parentdir/
/childdir/
child_file1.txt
child_file2.jar
file1.txt
file2.txt
所以,我们得到下一个完整的文件名:
/parentdir/file1.txt
/parentdir/file2.txt
/parentdir/childdir/child_file1.txt
/parentdir/childdir/child_file2.jar
哪个正则表达式匹配所有这些文件,除了最后一个扩展名为.jar的文件?
一点澄清:表达式可以包含'parentdir'字符串和'.jar'字符串,所有其他文件和目录都可以包含任何名称和扩展名。
答案 0 :(得分:3)
您可以使用否定断言:/(?<!\.jar)$/
这将匹配任何不以.jar
结尾的内容答案 1 :(得分:1)
否定断言正则表达式是一种可行的方法,但在多变的情况下更常见的解决方案是广泛忽略(例如忽略parentdir/
)然后hg add
少数异常文件你不要被忽视。
在svn和cvs中你不能添加一个在你的忽略列表中的文件,如果你确实未来跟踪,那么在mercurial hg add
完全覆盖忽略,所以除非你有很多新的将来出现的罐子,只需忽略广泛并添加.jar。