Objective-C - 用1个新行替换所有双新行?

时间:2011-11-21 18:21:49

标签: objective-c nsstring nsmutablestring

我有一个html字符串,我希望一次允许1个换行符。我试图用“\ n”替换所有“\ n \ n”。但最后我最终得到了两次换行。

是否可以打印字符串的内容以查看内容是什么,因此在输出窗口中显示“\ n”而不是转到新行。

while ((range = [html rangeOfString:@"\n\n"]).length) 
{
   [html replaceCharactersInRange:range withString:@"\n"];
}

编辑: html已转换为纯文本(因此字符串中没有BR标记)

2 个答案:

答案 0 :(得分:3)

如果您想要压缩为一个不确定数量的换行符,则可以使用NSRegularExpression。类似的东西:

NSRegularExpression *squeezeNewlines = [NSRegularExpression regularExpressionWithPattern:@"\n+" options:0 error:nil];
[squeezeNewlines replaceMatchesInString:html options:0 range:NSMakeRange(0, [html length]) withTemplate:@"\n"];

(写在我的浏览器中,没有经过测试,因为我手边没有最近的Mac,所以如果我搞砸了,请告诉我。)

答案 1 :(得分:1)

为什么不使用:

- (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)opts range:(NSRange)searchRange