【问题标题】:Is it possible to do REGEX in build.gradle for a string?是否可以在 build.gradle 中为字符串执行 REGEX?
【发布时间】:2021-02-02 19:09:10
【问题描述】:

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

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

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

variant.versionName

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

【问题讨论】:

    标签: android kotlin build.gradle version


    【解决方案1】:

    当然可以。您可以使用带有正则表达式的常规 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)
    

    【讨论】:

    • 非常感谢!如果我理解正确,它是说它必须找到一个以 \\d+\\.\\d+\\.\\d+ 开头的模式,但是为什么整个模式之后会有一段时间?当我搜索时,这意味着匹配任何字符?
    • 我想我对 .* 的含义感到困惑
    • .* 匹配任何字符零次或多次。我添加它以匹配字符串的其余部分,但可能没有必要。
    猜你喜欢
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2022-01-02
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多