regex - 更改gradle中的文件扩展名

标签 regex groovy gradle

这似乎很简单,但是我找不到提供解决方案的单一来源。

我有一个像这样的项目:

src
 -main
  -resources
   -bpmns
    -nnn.bpmn

我希望gradle将所有以bpmn结尾的文件重命名为bpmn20.xml,而保留所有已经具有bpmn20.xml扩展名的文件。

这是我的方法:
task renameBPMN(type: Copy) {
    outputs.upToDateWhen { false } //to pevent gradle from not executing this task
    from('src/main/resources/bpmn/')
    into('src/main/resources/bpmn/')
    rename ('/^.*\\.(bpmn)$/', '$1.bpmn20.xml')
}

根据一些在线正则表达式测试人员的说法,正则表达式应该匹配nnn.bpmn,gradle却什么也没做。

有任何想法吗?

最佳答案

根据gradle文档, AbstractCopyTask::rename() 的正则表达式不需要定界符:

rename '(.*)_OEM_BLUE_(.*)', '$1$2'

尝试更换:
rename ('/^.*\\.(bpmn)$/', '$1.bpmn20.xml')

带有:
rename ('^.*\\.(bpmn)$', '$1.bpmn20.xml')

关于regex - 更改gradle中的文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25163564/

相关文章:

javascript - 使用 jquery 文本框仅允许带点的十进制数字

Groovy GString 和数字格式

gradle - 如何在gradle中的jar的 list 文件中添加空白行

android - Gradle 构建变体 Debug 和 Release 未显示。谷歌地图问题

java - IntelliJ IDEA 2017.1 不会在断点处停止

php - 需要根据给定的句子创建一个随机句子

javascript - 我如何将其变成多场比赛?

Groovy XmlSlurper 获取没有子节点的节点的值

java - 使用 Sikuli 和 Env.isLockOn(Key.NUM_LOCK) 单击图像不起作用

python - 如何捕获大括号之间的文本以及这些大括号内的特定模式