Ios 从字符串中删除多个换行符/回车符

Ios 从字符串中删除多个换行符/回车符,ios,regex,newline,carriage-return,Ios,Regex,Newline,Carriage Return,我试图从一个可能以任何模式出现的字符串中删除多个换行符/回车符(这些字符串来自社交网络API-TW、FB、YT)。我可以删除几乎所有的组合,但似乎无法删除多次重复的“\r\n”或“\n\r” 我想要的是: “Line1\r\nLine2\n\n\n\n\n\n\nLine3\r\r\r\r\nLine4\r\n\“Line5”\n\r\n\r\n\rLine6\rLine7\r\n\r\nLine8\r\r\r\n\r\n\r\n\n\r\n\r\n\r\n\r\n\n\n\r\n\n\r\r\

我试图从一个可能以任何模式出现的字符串中删除多个换行符/回车符(这些字符串来自社交网络API-TW、FB、YT)。我可以删除几乎所有的组合,但似乎无法删除多次重复的“\r\n”或“\n\r”

我想要的是: “Line1\r\nLine2\n\n\n\n\n\n\nLine3\r\r\r\r\nLine4\r\n\“Line5”\n\r\n\r\n\rLine6\rLine7\r\n\r\nLine8\r\r\r\n\r\n\r\n\n\r\n\r\n\r\n\r\n\n\n\r\n\n\r\r\r\n\n\n\n\r\n

成为:

Line1
Line2
Line3
Line4
"Line5"
Line6
Line7
Line8
Line9
Line10
Line11
但目前我得到:

Line1
Line2
Line3
Line4
"Line5"

Line6
Line7

Line8
Line9
Line10
Line11
这是我的代码:

NSMutableString *testString = [[NSMutableString alloc]init];
[testString appendString:@"Line1\r\nLine2\n\n\n\n\n\n\n\nLine3\r\r\r\r\rLine4\r\n\"Line5\"\n\r\n\rLine6\rLine7\r\n\r\nLine8\r\r\r\r\r\r\r\r\n\n\n\rLine9\n\n\n\n\n\r\r\r\r\nLine10\nLine11\n\n\n\n"];

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(\r+)(\\n+)?(\r+)?|(\\n+)(\r+)?(\\n+)?|(\\n\r+)|(\r\\n+)" options:NSRegularExpressionCaseInsensitive error:nil];

[regex replaceMatchesInString:testString options:0 range:NSMakeRange(0, [testString length]) withTemplate:@"\n"];

我在一个正则表达式验证站点上尝试了这个方法,它可以工作->
(\\r\124;\\ n)+
或者如果您不需要捕获
(?:\\r\124;\\ n)+
那么它将有不同数量的斜杠,这取决于它们是实际的回车还是仅仅是\r\n和\r\n(另外,将斜杠放入
NSString
literal中需要将斜杠的数量增加一倍)

我认为ios也接受字符类,并将使用这个正则表达式:
[\r\\n]+
。基本上,它会在以后的代码中将任何连续的
\r
\\n
替换为
\n
。@Jerry,你应该回答这个问题。这个解决方案和Jerry的解决方案都很好地工作,谢谢!如果Jerry的解决方案有效,我不是故意要敲诈他。我在网站上试用过,结果也替换了所有的“n”也在“行”中,所以我对它做了一些修改。