我需要找到与grails中特定模式匹配的所有文件。
文件将标记为“runid.started.xml”。所以我希望找到所有使用以下正则表达式:
/(? <=\.)(.*?)(?=\.)/
我可以找到所有文件,但我需要将其设置为匹配模式的文件。我找到了一些例子,但似乎都没有。这是最新的:
New File (c:\\mydirectory\\test ).eachFileRecurse (Files)
{
if (it.name ==~ /(? <=\.)(.*?)(?=\.)/){
println it
{
println "nope"
}
这会返回“nope”......我对grails很新,所以我不确定我哪里出错了。我的正则表达式在一个在线正则表达式测试中似乎是正确的,但我可能是错的。
答案 0 :(得分:1)
==~
是匹配运算符。意味着有问题的字符串必须完全匹配。并(? <=\.)(.*?)(?=\.)
doesn't match“runid.started.xml”。所以你有两个选择:
=~
\w*\.(\w+)\.\w*