android - 用于 android 包名称的 ant 正则表达式

标签 android regex ant build-process

在我的 android 项目中,我所有的 .java View 文件都根据当前包的名称导入 R 文件。当我在 Android Manifest 中更改我的包名称时(动态地,不通过 Eclipse 或任何其他 IDE 重构),我需要引用我所有的 java 文件以指向生成的新 R 文件

我正在通过 Ant 制作构建脚本,但我不确定正则表达式约定是什么样的

需要替换的字符串如下所示:

import com.mysite.myapp.R;

即。

导入 com.sushiroll.california.R

这是我的 ant 构建脚本中的内容

<replaceregexp file="src/*"
           match="import*.R"
           replace="import ${current.package}.R"
           byline="true">
        <fileset dir="src/.">
            <include name="*.java"/>
        </fileset>
</replaceregexp>

我想匹配所有以 .R 结尾的 import 字符串

并将其替换为 import $current.package}.R

对于 ant 正则表达式,我该如何表达?我写的 match 和 replace 只是猜测

最佳答案

您需要在 .R 之前对旧包名称字符进行分组

如果你知道包名

    match="import com\.mysite\.myapp\.R;"

如果你现在知道包名,但是如果你从不同的包中导入 R,请做好导入错误的准备

    match="import (.*).R;"

替换为

replace="import ${current.package}.R;"

    <fileset dir="src">
        <include name="**/*.java"/>
    </fileset>

关于android - 用于 android 包名称的 ant 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752650/

相关文章:

javascript - 如何在 JavaScript 中的字符串中间进行锚定正则表达式匹配

java - "ant all"构建无法继续。 'Cannot run program "java ".'

android - 我如何从android中的复选框获取值

android getSpans 参数

java - 改进如何在 GET 中传递位置

java - 从其 Activity 外部定位按钮

Java Regex 找不到匹配项

javascript - 如何正确地将这个正则表达式分成两行?

ant - Junit/Ant 重新运行失败的测试

android - 使用 ProGuard 删除 Android 中的 LibGDX 日志