Atom Editor: RegEx replace to uppercase/lowercase

折月煮酒 提交于 2020-04-29 07:15:52

问题


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.


回答1:


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)




回答2:


Press alt + enter to select all matches, next go to menu: Edit --> Text --> Upper or Lower case




回答3:


A straight-forward kind-of solution within the framework of plain Regex would be to do the replacement for each character separately. This is probably not practical (if you have to trigger each replacement manually), but it works.

Search for all lower-case 'a' at the beginning of each word, replace it by the upper-case 'A'. Then 'b' for 'B', ... until you have all characters relevant for your target language/character set.



来源:https://stackoverflow.com/questions/28673382/atom-editor-regex-replace-to-uppercase-lowercase

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!