2014-01-15 33 views
1

我想使用Xcode的查找和替换正则表达式通过删除在我的代码不必要的空白行代替两个空行。换句话说,我要取代这个:正则表达式用一个空行

NSString *helloString = @"Hello"; 


helloString = [helloString stringByAppendingString:@" World"]; 

有了这个:

NSString *helloString = @"Hello"; 

helloString = [helloString stringByAppendingString:@" World"]; 

我试着输入控制+ Q回报控制+ Q在搜索框中回报(通过this answer的启发,但它没有匹配。

瓦在正则表达式应该是什么?

回答

1

我不知道正则表达式非常好。我只是使用简单的查找和替换文字字符串。将光标放在一行的最后一个字符上并按右移箭头选择换行符,选择一个空行。然后出现一个替换对话框并将2个空白行粘贴到查找字段中,并将1个空白行粘贴到替换字段中。从源空行的

+0

谢谢。这适用于空行中没有制表符或空格的情况。 – Eric

2

拷贝2,按APPLE-OPTION-F以显示搜索栏和两行粘贴到第一个字段。 然后进入第二个字段,然后输入OPTION回报

然后点击右边

替换按钮,请注意,这仅与同indendation /空间/制表符作为您复制的行线相匹配。如果您需要更灵活的东西,请使用支持regexen的文本编辑器。 可能的正则表达式可能类似于“\ n。* \ n”

+0

谢谢。这适用于空行中没有制表符或空格的情况。 – Eric

+0

请注意,Xcode不支持正则表达式(请参阅我在问题中链接的答案)。我试着搜索'\ n。* \ n',但是没有返回任何匹配。 – Eric

1

Xcode不支持来自Apple员工#8 Chris Espinoza的this mailing-list posting多行的正则表达式匹配。

你可以做两个步骤:

  1. 做这样的正则表达式搜索,从否则空行删除空白字符:

    • 查找:^\s+$
    • 更换:留着空白。
  2. 做一个文本(非正则表达式)搜索这样的,有一个更换两个空行:

    • 选择两个空行,去编辑>查找>查找所选(命令-E)
    • 选择一个空行,去编辑>查找>使用所选替换(命令移-E)
+0

用'nothing'替换'^ \ s + $'会删除*全部*空行,所以在第二步中没有剩余的空行可供选择... – Eric

+0

我没有在Xcode 4.3中得到这个结果。我猜这是可能的,他们已经改变了最近版本的行为... 尝试将Find模式更改为'^ \ s +()$',并将模式替换为'\ 1'。 –

0

对于这样的任务和其他格式化也许你想检查uncrustifyX,它很容易使用和广泛。