正则表达式将"{"替换为xcode中的"(换行符){"

Aar*_*ron 33 regex xcode objective-c

我需要改变我在同一行中将开口括号放到新行的编码风格.我需要找到并替换(空格){with(换行符){.我听说使用正则表达式查找和替换,它非常简单.

有人可以帮我吗?

小智 53

您可以尝试以下方法:

  • 在"查找"框中,键入 space \ { $
  • 在"替换"框中,键入 control+q return {

control+q需要引用返回键.键入时没有视觉反馈control+q return,因此替换框中唯一可见的字符是左大括号:

截图查找和替换

虽然这回答了你的问题,但是(至少!)有一个问题:它不会缩进开口花括号,所以像

- (void)method {
    for (obj in collection) {
        NSLog(@"%@", obj);
    }
}
Run Code Online (Sandbox Code Playgroud)

转换为

- (void)method
{
    for (obj in collection)
{
        NSLog(@"%@", obj);
    }
}
Run Code Online (Sandbox Code Playgroud)

菜单项"编辑">"格式">"重新缩进"会将开始花括号放在正确的缩进选项卡中,但可能会对代码样式产生不希望的副作用.


编辑:如在另一个答案中评论的那样,您可能需要一个与大括号周围任意数量的空格匹配的正则表达式,例如\ s*{\ s*$

  • @Aaron这就是Xcode的工作原理.它不支持在替换框中使用反斜杠(例如\n)转义字符,因此它使用标准(Emacs继承)控件+ q组合来引用特殊键.请注意,返回必须以不同方式解释,因为它是默认窗口按钮的等效键 - 键入return与单击"查找"相同. (3认同)