Regex заменить в Android Studio для UPPERCASE - PullRequest
1 голос
/ 17 марта 2020

Кто-нибудь знает, возможно ли выполнить операцию замены регулярного выражения в AndroidStudio, где конкретное совпадение можно преобразовать в верхний регистр?

Пример:

Я хочу найти найти все вхождения из;

Log.i
Log.e
Log.d

... и замените их на:

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

Другими словами, некоторые из замен такие, как есть (не понятно), но другие должны быть КАПИТАЛИЗИРОВАННЫЙ .

Если это возможно, как мне это сделать?

1 Ответ

1 голос
/ 18 марта 2020

Вы можете использовать

(Log)\.([ied])

Заменить на if ( LogConfig.\U$1$2\E ) $0. См. regex demo .

Если вам нужно сопоставить Log.e как целое слово, добавьте границы слов, \b(Log)\.([ied])\b.

Подробности

  • (Log) - Группа захвата 1: Log
  • \. - точка
  • ([ied]) - буква i, e или d.

\U$1$2\E означает:

  • \U - начать переводить в верхний регистр все следующее:
    • $1 - значение группы 1
    • $2 - значение группы 2
  • \E - прекратить перевод в верхний регистр.
...