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

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

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

billingAddress
paymentDetails

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

В поле ввода "найти" я вставил:

([A-Z])

В поле ввода "заменить" я вставил:

_\L$1

Результат я получил:

billing_LAddress
payment_LDetails

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

billing_address
payment_details

3 ответа

Решение

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


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

находить: ([A-Z])
заменить: _\l$1

someThing -> some_thing


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

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

SOMETHING -> something


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

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

something -> SOMETHING


4. Заменить первый символ слов строчными \l

находить: (\w*)
заменить: \l$1

Something -> something


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

находить: (\w*)
заменить: \u$1

something -> Something


Примечание. Добавьте несколько дополнительных границ.

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


Документация Regex

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

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

_\l$1

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

Ничего / Все. Это просто не поддерживается банкомат.

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


ОБНОВЛЕНИЕ: Эта функциональность теперь реализована и доступна начиная с PhpStorm v10.

Другие вопросы по тегам