Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Atom Editor: RegEx replace to uppercase/lowercase

I'm trying to replace some characters in a string with their uppercase/lowercase equivalents in Atom Editor.

Let’s say I have the string:

some:test:sequence 

and want the result:

Some:Test:Sequence 

I’m aware of things like \u$1 and \l$1, but they do not work in Atom, as Atom is using JS-style RegEx. The JS-RegEx solutions I found, however, always involve calling a function (see example here), which is not possible in Atom, afaik.

Does anyone know if there is a way to achieve this? I also don’t mind installing a package for a more powerful regex search/replace, but haven’t found one and I’d like to avoid writing one on my own just for this.

Please note: I’m not looking for a solution to find/select the characters. The selection works just fine and is a bit more complex as in the example.

like image 349
max Avatar asked Feb 23 '15 12:02

max


People also ask

How do you uppercase in regular expressions?

This can be done easily using regular expressions. In a substitute command, place \U or \L before backreferences for the desired output. Everything after \U , stopping at \E or \e , is converted to uppercase. Similarly, everything after \L , stopping at \E or \e , is converted to lowercase.

Does Atom support regex?

The relevant point for using regex+capturing groups in Atom is knowing how to refer to the captured group in the Replace field. So let's use an example: the pattern below matches and captures a 2-character-word followed by a 3-character-word. There's not much else specific to Atom and regular expressions.


1 Answers

Note that whilst you said the question is not about the selection, I'm using a more simplified example.

If you have a string consisting of: This is a Mixed case String! I want every Letter to Start with A Capital.

You can use the Regex selector of \b\w to find the first characters of every word in the string. (Done by Cmd + F and clicking .* on the right hand menu for Regex search)

Now press Alt + Enter to select all of the found results, this should highlight all results of the Regex query. Following this, to make every first letter uppercase you can press Cmd + K -> Cmd + U, you can modify them however you want from here.

Boom! The string should now look like: This Is A Mixed Case String! I Want Every Letter To Start With A Capital.

I've been looking for an answer for this question for a while, here are my sources for the answer:

  • arturomp's answer on modifying text (docs included in answer)

  • johno's answer on how to select all results from a Regex search (Relevant pull request included in answer)

like image 93
Aaron Critchley Avatar answered Sep 22 '22 13:09

Aaron Critchley