在Xcode项目中,我们通常在不注意行间距的情况下编写程序。
所以编码完成后,如何用单行删除所有这些额外的换行符?
答案 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中):
然后将SOMETHINGWHATEVER123
替换为两个换行符,从而处理我的多行正则表达式查询。
不确定这对你的情况有多直接适用,因为它太老了,但我找到了自己的方式,所以也许其他人可能会这样!
答案 3 :(得分:0)
现代Xcode(从Xcode 11开始编写)确实支持多行正则表达式。只需在(?s)
之前添加.
修饰符即可执行这种类型的搜索,例如:
Codable(?s).*rawValue
将搜索以Codable
开头并以rawValue
结尾的文本块,无论它们跨越多少行。