在我的一个测试用例中,我想将一个组件的特定jar从一个位置复制到另一个位置。 例如,当目标目录只有以下jars
时 org.test.custom.search-4.2.2-快照的.jar
org.test.custom.search-4.2.2-的测试 -SNAPSHOT.jar
我想复制org.test.custom.search-4.2.2-SNAPSHOT-.jar。这个jar的版本可以随时更改。所以我可以将正则表达式用于此目的[1]。但我想知道如何省略正则表达式中的另一个jar。即想要省略名称中包含字符串“ tests ”的jar。
答案 0 :(得分:1)
您可以使用indexOf
代替regex
来检查包含单词“tests”的文件名是否如下所示:
if(fileName.indexOf("tests") >= 0) {
// do what you want
}
更新: indexOf()
将比regex
快得多,而且可能也更容易理解。
答案 1 :(得分:1)
基于regex
的解决方案将是:
if (fileName.matches(".*tests.*")) {
//do something
} else {
//do something else
}
答案 2 :(得分:0)
将SNAPSHOT与任何给定版本号完全匹配,忽略所有其他版本(包括tests-SNAPSHOT):
org\.test\.custom\.search-\d+\.\d+\.\d+-SNAPSHOT-\.jar
答案 3 :(得分:-1)
匹配主jar而不是测试jar的正则表达式可能是:
\w+-[\d.]+-(?!tests-).*\.jar
字符串"测试 - "有一个否定匹配器。请注意,将此正则表达式放入字符串时,您必须转义反斜杠。