首页 > 解决方案 > 是否可以在 build.gradle 中为字符串执行 REGEX?

问题描述

我在应用程序级别的 build.gradle 中有以下代码行

    applicationVariants.all { variant ->
    variant.resValue "string", "versionName", "Version " + variant.versionName
}

有没有办法执行正则表达式并且只抓取特定部分

variant.versionName

它返回给我类似 2.56.2-alpharc 的东西,我想删除除开头的数字之外的所有内容以获得 2.56.2

标签: androidkotlinbuild.gradleversion

解决方案


你当然可以。您可以使用带有正则表达式的常规 java 代码或一些 groovy 特定代码:

对于java方法,一些东西:

    Pattern pattern = Pattern.compile("^(\\d+\\.\\d+\\.\\d+).*");
    Matcher matcher = pattern.matcher(variant.versionName);
    matcher.find()
    def strippedVersion = matcher.group(1)

对于常规方法:

    def matcher = variant.versionName =~ /^(\d+\.\d+\.\d+).*/
    matcher.find()
    def strippedVersion = matcher.group(1)

推荐阅读