如何使用Find& amp;在Xcode中用单个新行替换多个新行更换

时间:2011-04-02 09:05:04

标签: iphone objective-c cocoa cocoa-touch xcode

在Xcode项目中,我们通常在不注意行间距的情况下编写程序。

所以编码完成后,如何用单行删除所有这些额外的换行符?

4 个答案:

答案 0 :(得分:11)

XCode的find和replace不支持多行正则表达式。

如果要搜索多行,则需要将搜索选项设置为“文本”,然后键入选项+返回两次或复制/粘贴两个新行字符。然后用一个新的行替换char。

有关详细信息,请参阅here

答案 1 :(得分:10)

在文字搜索栏中......可以使用以下方法搜索/替换多行/“非打印字符”......

说我想替换

的所有实例
/**
 * This is a comment...

/**  This is a comment...

“搜索字词”将输入为...

/** Alt / Option + Enter Space * Space

并且替换术语将简单地输入为...

/** Alt / Option + Tab

故事的寓意......当你想在搜索/替换字段中使用提供替代目的的字符时......将修饰符 Alt / Option 与它们的条目组合使用它们“字面意思” ”

答案 2 :(得分:3)

我通过在其位置使用临时字符串解决了这个问题。我的问题有点不同,我想找到界面中属性和方法声明之间没有空行的任何地方,如下所示:

@property (nonatomic) NSBlah *someThing;
- (id)someMethodThing;

并替换为:

@property (nonatomic) NSBlah *someThing;

- (id)someMethodThing;

为了做到这一点,我用它来查找使用多行:

@property(.*)\n([-+].*)

然后我用一些文本字符串代替换行符替换它:

@property$1SOMETHINGWHATEVER123$2

然后,我关闭了正则表达式替换,并使用常规文本替换,替换为:

SOMETHINGWHATEVER123

使用Xcode的换行符,您可以通过单击放大镜选择“插入模式”来找到它(这是在Xcode 7中):

enter image description here

然后将SOMETHINGWHATEVER123替换为两个换行符,从而处理我的多行正则表达式查询。

不确定这对你的情况有多直接适用,因为它太老了,但我找到了自己的方式,所以也许其他人可能会这样!

答案 3 :(得分:0)

现代Xcode(从Xcode 11开始编写)确实支持多行正则表达式。只需在(?s)之前添加.修饰符即可执行这种类型的搜索,例如:

Codable(?s).*rawValue将搜索以Codable开头并以rawValue结尾的文本块,无论它们跨越多少行。