Regex заменяет прописные буквы строчными буквами в PhpStorm

Эй, мне нужно изменить во многих местах camelCase на snail_case.

У меня есть следующий пример:

billingAddress
paymentDetails

Я попытался использовать поиск и замену регулярным выражением в PhpStorm

В поле ввода "Найти" я добавляю:

([A-Z])

В поле ввода "replace" я добавляю:

_\L$1

Результат:

billing_LAddress
payment_LDetails

Что мне нужно изменить, чтобы получить следующий результат:

billing_address
payment_details

Ответ 1

Сначала откройте функцию "Найти и заменить" с помощью CTRL + R а затем установите флажки " Match Case и " Regex (и при необходимости в разделе " In Selection):

enter image description here


1. Чтобы заменить camelCase на snail_case, как в вопросе:

найти: ([AZ])
заменить: _\l$1

someThing → some_thing


2. Чтобы заменить слова UPPERCASE на строчные слова, используйте \L

найти: (\w*)
заменить: \L$1

SOMETHING → something


3. Чтобы заменить слова нижнего регистра на слова UPPERCASE, используйте \U

найти: (\w*)
заменить: \U$1

something → SOMETHING


4. Чтобы заменить первый символ слов в нижнем регистре, \l

найти: (\w*)
заменить: \L$1

Something → something


5. Для замены первого символа слов с помощью UPPERCASE используйте \u

найти: (\w*)
заменить: \U$1

something → Something


Примечание: добавьте дополнительные границы

Вы получите лучшие результаты, добавив некоторые дополнительные границы, которые подходят для вашего конкретного случая, например, одного ' или двойные кавычки " или разрывы строк \n


Regex Documentation

Проверьте информацию о дополнительном регулярном выражении Синтаксис документации для PHPStorm или WebStorm.

Ответ 2

Согласно документам PHPstorm и, согласно моему тесту, это работает сейчас:

_\l$1

Ответ 3

Что мне нужно изменить, чтобы получить следующий результат:

Ничего/Все. Он просто не поддерживает ATM.

https://youtrack.jetbrains.com/issue/IDEA-70451 - посмотреть этот билет (звезда/голос/комментарий), чтобы получить уведомление о прогрессе.


UPDATE: эта функциональность теперь реализована и доступна с PhpStorm v10.