Use Notepad++ to change under_score_case to CamelCase?

A simple find/replace will do this in NP++:

Find: [_]{1,1}([a-z])

Replace: \U$1

You need to select the 'Regular expression' radio button in the Replace panel for this to work.


I have a solution that's long and convoluted, but will work in Notepad++. It requires the use of regex, optionally normal search and replace, as well as TextFX.

  1. Add a placeholder character to the front of each word, I chose Z. It probably doesn't have to be alphabetic, but it's easier for the last step. Using regex, search for \<([^ ]*)\> and replace with Z\1.
  2. Replace existing spaces with a unique placeholder sequence. I chose #space#. This can be done with regex, but I prefer using normal or expanded.
  3. Replace underscores with spaces. If there are any underscores that shouldn't be replaced, then a custom regex is probably required. I just did a straight search and replace.
  4. Select all text, and from the TextFX menu, select TextFX Characters -> Proper Case.
  5. Now we need to reverse the first 3 steps. Search for spaces, and replace them with nothing. Then search for your space placeholder sequence, and replace with a space. Finally, using regex, search for \<Z([^ ]*)\> and replace with \1.

I typically use vim myself as an editor. The following regular expression accomplishes what you're trying to do in vim:

%s/_\([a-zA-Z]\)/\u\1/g

From what I can tell (I fooled around with NP++ for a bit), Notepad++ does not understand the uppercase macro \u in Perl Regexp. You may not be able to do this entirely with Notepad++. Hopefully, someone will prove me wrong and make your day.