Objective c NSString-删除3个以上的;新行“;从字符串的中间开始
尝试从NSString的中间删除不必要的新行(3行或更多) 删除中间新行的字符串:\n\n\nObjective c NSString-删除3个以上的;新行“;从字符串的中间开始,objective-c,nsstring,Objective C,Nsstring,尝试从NSString的中间删除不必要的新行(3行或更多) 删除中间新行的字符串:\n\n\n Hello my story is... 目标: Hello my story is... message = [message stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]]; message = [message stringByTrimmingCharactersIn
Hello
my story is...
目标:
Hello
my story is...
message = [message stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];
message = [message stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
message = [message stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
message = [message stringByReplacingOccurrencesOfString:@"\\n{3,}" withString:@"\n\n"];
message = [message stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\n\n"];
没有成功的代码:
Hello
my story is...
message = [message stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];
message = [message stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
message = [message stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
message = [message stringByReplacingOccurrencesOfString:@"\\n{3,}" withString:@"\n\n"];
message = [message stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\n\n"];
您就快到了–您不能只使用正则表达式作为第一个参数,因为无法区分要替换的字符串和要替换的RE之间的区别,它们都只是字符串
您需要的是同级方法stringByReplacingOccurrencesOfString:with string:options:range:
,您可以将options
参数设置为NSRegularExpressionSearch
以指示第一个参数是RE,并将range
设置为整个字符串
HTH
stringByTrimmingCharactersInSet
仅从末端删除,而不是从中间删除,因此这不是一个可行的选项。请参阅(根据需要更改替换字符串)。@rmaddy,您的代码答案是删除所有字符串的新行。我只想删除3个以上的换行符。我链接到的答案是您需要的通用解决方案。显然,您需要调整搜索和替换字符串以满足您的特定需要。