Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regular Expression to replace " {" with "(newline){" in xcode

You could try the following:

  • In the Find box, type space \ { $
  • In the Replace box, type control+q return {

control+q is needed to quote the return key. There’s no visual feedback for typing control+q return, so the only visible character in the replace box is the opening curly brace:

Screenshot Find & Replace

Although this answers your question, there’s (at least!) one problem: it won’t indent the opening curly brace, so something like

- (void)method {
    for (obj in collection) {
        NSLog(@"%@", obj);
    }
}

is converted to

- (void)method
{
    for (obj in collection)
{
        NSLog(@"%@", obj);
    }
}

The menu item Edit > Format > Re-Indent will place the opening curly braces in the correct indentation tab but there might be non-desired side effects to your code style.


Edit: as commented in the other answer, you might want a regular expression that matches an arbitrary number of whitespaces surrounding the curly brace, e.g. \s*{\s*$


Just copy an example of needed replacement string (new line or else) from code to replacement box.


search for this \s\{ and replace with \n\{

Your editor needs to support regular expressions in both search and replace fields. If you can't use the \n in the replace dialog because it takes the string literally, try a option-enter followed by {, that works in most editors I tried.

  • the \s is a space character (if there could be more spaces you can use \s+)

note it has to be \s+ instead of \s* as someone fixed because indeed \s* also matches in case there is no space.

  • the \{ needs the backslash because {
    needs to be escaped as it has another meaning in a regex
  • the \n is for a newline

The best way however would be to reformat your code where you choose to have your { on a new line. Most editors allow you to set these options.

Another way is to use a code beautifier, you can google these online and some allow to change settings like that.


You can use [\n\r] to describe newline It's a shame, I came across with that when I tap on magnifier icon next to search bar while finding something in a single file.

To see several other expressions:

  1. go to a file
  2. do cmd+f and open search
  3. tap on the magnifier icon at the left-hand side of search field at the top
  4. you can see other expressions in the dropdown menu