【问题标题】:Regex replace in Android Studio to UPPERCASE将 Android Studio 中的正则表达式替换为大写
【发布时间】:2020-03-17 16:25:40
【问题描述】:

有谁知道是否可以在 AndroidStudio 中执行正则表达式替换操作,将特定匹配转换为大写?

例子:

我想搜索所有出现的;

Log.i
Log.e
Log.d

...并将它们替换为:

if ( LogConfig.LOGI ) Log.i
if ( LogConfig.LOGE ) Log.e
if ( LogConfig.LOGD ) Log.d

换句话说,一些替换是原样(无需多想),但其他替换必须大写

如果可以,我该怎么做?

【问题讨论】:

  • 您至少尝试过什么吗?什么有效,什么无效?
  • @Wiktor 据我所知,如果通过将一个“匹配”的出现与通配符(例如 $1)进行匹配,我可以重复匹配。我到处寻找大写替换,但一无所获。所以用 'if ( LogConfig.LOG$1 ) Log.$1' 替换 'Log\.[ied]' 不会给我我想要的东西,因为我找不到如何要求 AndroidStudio 用 UPPERCASE($1) 替换 $1 /跨度>
  • 试试regex101.com/r/YNnt0A/1, (Log)\.([ied]) => if ( LogConfig.\U$1$2\E ) $0
  • 维克托,你是个天才。我不知道我们能做到这一点。

标签: regex android-studio uppercase regexp-replace


【解决方案1】:

你可以使用

(Log)\.([ied])

替换为if ( LogConfig.\U$1$2\E ) $0。请参阅regex demo

如果您需要将Log.e作为一个完整的单词进行匹配,请添加单词边界,\b(Log)\.([ied])\b

详情

  • (Log) - 捕获组 1:Log
  • \. - 一个点
  • ([ied]) - 一封信 ied

\U$1$2\E 表示:

  • \U - 开始转换为大写字母:
    • $1 - 第 1 组值
    • $2 - 第 2 组值
  • \E - 停止转大写。

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    相关资源
    最近更新 更多