Как я могу использовать регулярное выражение для замены верхнего регистра на нижний регистр в Intellij IDEA?


я погуглил для этого и узнал, как это сделать с другими парсерами регулярных выражений:

http://vim.wikia.com/wiki/Changing_case_with_regular_expressions
http://www.regular-expressions.info/replacecase.html

Я пробовал эти и ни одна из них не работает. В качестве примера, я хочу использовать регулярное выражение, чтобы изменить это:

private String Name;
private Integer Bar = 2;

для этого:

private String name;
private Integer bar = 2;

Я пробовал что-то вроде этого:

replace: private (S+) (S+)
with: private  $L
with: private  L
with: <etc.>

ни один из них не работает. Возможно ли это сделать в intellij, или это недостающая функция? Это просто для образовательных целей, и пример надуман. Я просто хочу знать, если это возможно сделать в intellij.

3 57

3 ответа:

в идее 15 вы можете использовать следующие переключатели для переключения случая захваченных выражений. Это сейчас официально документированы так как эта версия была выпущена.

  • \l: опустите регистр одного следующего символа
  • \u: в случае одного следующего символа
  • \L: опустите регистр следующих символов до a \E или конец замены строка
  • \U: дело в следующем символы, пока не будет \E или конец строки замены
  • \E: отметьте конец изменения дела, инициированного \U или \L

вот пример использования (так как документация не ясна):

найти: (\w+_)+(\w+) заменить: \L$1$2\E

выше будет конвертировать FOO_BAR_BAZ до foo_bar_baz и т. д $1 относится к первому найденному захвату группа (в скобках), $2 ко второму набору и т. д.

ради потомства: это было изначально об этом сообщает по @gaoagong и документально здесь.

искал ответ, а затем понял, что @ajp15243 уже ответил на этот вопрос выше. В настоящее время в Intellij нет возможности использовать функцию замены регулярных выражений для изменения регистра буквы. Существует краткое обсуждение по следующему URL-адресу об этой функции.

http://www.jetbrains.com/idea/webhelp/regular-expression-syntax-reference.html

вы также можете проголосовать за эту функцию в выпуске Youtrack здесь:

http://youtrack.jetbrains.com/issue/IDEA-70451

есть плагин regex Intellij, но увы он также не поддерживает нижний и верхний корпус.

http://plugins.jetbrains.com/plugin/19?pr=idea

возможно, Вам просто придется запустить файлы через программу perl, чтобы правильно их заменить.

Я начал использовать Идея Vim plugin и научиться делать такие вещи в Vim. Таким образом, я мог бы повторно использовать эти навыки вне идеи.

вот команда vim, чтобы сделать то, что вы просили.

:%s/private\s\(\w*\)\s\(w*\)/private  \L/g

регулярное выражение вводится в среде IDE. Дополнительные косые черты необходимы для выхода из шаблона регулярных выражений в Vim.

Within The IDE

найти плагин из среды IDE. enter image description here