Regex replace uppercase with lowercase letters in PhpStorm/Webstorm (Intellij-IDEA)

dj_thossi picture dj_thossi · Jun 19, 2015 · Viewed 14.8k times · Source

Hey I have to change in a lot of places camelCase to snail_case.

I have following example:

billingAddress
paymentDetails

I tried to use find and replace with regex in PhpStorm

In 'find' input field I put in:

([A-Z])

In 'replace' input field I put in:

_\L$1

Result I got:

billing_LAddress
payment_LDetails

What do I need to change in order to get following result:

billing_address
payment_details

Answer

Wilt picture Wilt · Jun 1, 2016

First open Find and Replace functionality with CTRL + R and then check the boxes Match Case and Regex (and if necessary In Selection):

enter image description here


1. To replace camelCase to snail_case as in in the question:

find: ([A-Z])
replace: _\l$1

someThing -> some_thing


2. To replace UPPERCASE words to lowercase words use \L

find: (\w*)
replace: \L$1

SOMETHING -> something


3. To replace lowercase words to UPPERCASE words use \U

find: (\w*)
replace: \U$1

something -> SOMETHING


4. To replace first character of words with lowercase use \l

find: (\w*)
replace: \l$1

Something -> something


5. To replace first character of words with UPPERCASE use \u

find: (\w*)
replace: \u$1

something -> Something


Note: Add some extra boundaries

You get best results by adding some additional boundaries that suit your specific case, for example single ' or double quotes " or line breaks \n


Regex Documentation

Check for details on additional Regular Expression Syntax the documentation for PHPStorm or WebStorm.