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

时间:2011-02-22 13:35:17

标签: objective-c regex xcode

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

有人可以帮我这个吗?

5 个答案:

答案 0 :(得分:51)

您可以尝试以下方法:

  • 在“查找”框中,键入 space \ { $
  • 在替换框中,键入 control + q return {
引用返回键需要

control + q 。键入 control + q return 没有视觉反馈,因此替换框中唯一可见的字符是左大括号:

Screenshot Find & Replace

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

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

转换为

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

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


编辑:如另一个答案所述,您可能需要一个正则表达式,该表达式与大括号周围的任意数量的空格相匹配,例如: \ S * {\ S * $

答案 1 :(得分:2)

搜索此\s\{并替换为\n\{

您的编辑器需要在搜索和替换字段中支持正则表达式。如果你不能在替换对话框中使用\ n,因为它按字面意思取字符串,请尝试选项 - 输入后跟{,这在我尝试的大多数编辑器中都有效。

  • \s是一个空格字符(如果有的话) 可以使用更多空格\s+
  

请注意,必须将\s+代替\s*作为某人修复,因为如果没有空格,\s*也会匹配。

  • \{需要反斜杠,因为{
    需要被转义,因为它有另一个 在正则表达式中的含义
  • \n是换行符

然而,最好的方法是在您选择将{放在新行上的地方重新格式化代码。大多数编辑器都允许您设置这些选项。

另一种方法是使用代码美化器,你可以在线谷歌这些,有些允许更改这样的设置。

答案 2 :(得分:1)

只需将所需替换字符串(新行或其他)的示例从代码复制到替换框。

答案 3 :(得分:1)

您可以使用[\n\r]来描述newline 很遗憾,当我在搜索栏旁边点击放大镜图标同时在单个文件中查找内容时,我发现了这一点。

要查看其他几个表达式:

  1. 转到文件
  2. 执行cmd + f并打开搜索
  3. 点击顶部
  4. 搜索字段左侧的放大镜图标
  5. 您可以在下拉菜单中看到其他表达式

答案 4 :(得分:0)

我搜索了一下,发现你必须先在find-input字段左侧的小放大镜上启用正则表达式的查找选项;)