我拉一些文本从一个网站,并把它保存在一个NSString,并显示给用户,但我想它在一个明确的界限,一个字后一个字,用绝对的零线断开或不必要的空格或制表符。
看看下面的图片:
人体中有这一切的间距,我不想要的。 我确实希望单词之间的空格(所以我想:“这是一个句子”,而不是“Thisisasentence”),但所有的间距确实使输出难看。 我该如何摆脱它?
我拉一些文本从一个网站,并把它保存在一个NSString,并显示给用户,但我想它在一个明确的界限,一个字后一个字,用绝对的零线断开或不必要的空格或制表符。
看看下面的图片:
人体中有这一切的间距,我不想要的。 我确实希望单词之间的空格(所以我想:“这是一个句子”,而不是“Thisisasentence”),但所有的间距确实使输出难看。 我该如何摆脱它?
正则表达式帮助了很多在这里:
NSString *tooManySpaces = @" Too\tmany spaces \n and on several \nlines, at that";
NSString *cleaned = [tooManySpaces stringByReplacingOccurrencesOfString: @"\\s+"
withString: @" "
options: NSRegularExpressionSearch
range: NSMakeRange(0, tooManySpaces.length)];
该\s
模式覆盖的空白,即空格,制表符和换行符。 如果是太多了,你可以指定那些你需要的,就像这样: [ \t]+
覆盖空格和制表符。
为了在开始和结束时去除多余的空格,您还需要修剪的字符串(之前或应用正则表达式替换后):
cleaned = [cleaned stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
使用正则表达式替换模式@" +"
与(空间空间加) @" "
空格)。
换句话说,这将取代两个或多个空格的所有出现的一个空间。
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@" +" options:0 error:&error];
NSString *someString = ...; // some string with lots of spaces
NSString *newString = [regex stringByReplacingMatchesInString:someString options:0 range:NSMakeRange(0, someString.length) withTemplate:@" "];