通过whiteSpace将1个NSString分成两个NSStrings

时间:2011-10-12 21:02:58

标签: iphone nsstring whitespace

我的NSString最初看起来像<a href="http://link.com"> LinkName</a>。我删除了html标记,现在有NSString看起来像

http://Link.com   SiteName

如何将两者分成不同的NSString,以便我有

http://Link.com

SiteName

我特别想在标签中显示SiteName,只需使用http://Link.comUIWebView中打开,但是当它只是一个字符串时我不能。非常感谢任何建议或帮助。

2 个答案:

答案 0 :(得分:8)

NSString *s = @"http://Link.com   SiteName";
NSArray *a = [s componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSLog(@"http: '%@'", [a objectAtIndex:0]);
NSLog(@"site: '%@'", [a lastObject]);

NSLog输出:

http: 'http://Link.com'
site: 'SiteName'

奖励,使用RE:

处理具有嵌入空间的站点名称
NSString *s = @"<a href=\"http://link.com\"> Link Name</a>";
NSString *pattern = @"(http://[^\"]+)\">\\s+([^<]+)<";

NSRegularExpression *regex = [NSRegularExpression
                              regularExpressionWithPattern:pattern
                              options:NSRegularExpressionCaseInsensitive
                              error:nil];

NSTextCheckingResult *textCheckingResult = [regex firstMatchInString:s options:0 range:NSMakeRange(0, s.length)];
NSString *http = [s substringWithRange:[textCheckingResult rangeAtIndex:1]];
NSString *site = [s substringWithRange:[textCheckingResult rangeAtIndex:2]];

NSLog(@"http: '%@'", http);
NSLog(@"site: '%@'", site);

NSLog输出:

http: 'http://link.com'
site: 'Link Name'

答案 1 :(得分:2)

NSString有一个带签名的方法:

componentsSeparatedByString:

它返回一个组件数组作为结果。像这样使用它:

NSArray *components = [myNSString componentsSeparatedByString:@" "];

[components objectAtIndex:0]; //should be SiteName
[components objectAtIndex:1]; // should be http://Link.com
祝你好运。