Разделить 1 NSString на две строки NSSt с помощью whiteSpace - PullRequest
5 голосов
/ 13 октября 2011

У меня есть NSString, который изначально выглядел как <a href="http://link.com"> LinkName</a>.Я удалил html-теги, и теперь у меня есть NSString, который выглядит как

http://Link.com   SiteName

, как я могу разделить их на разные NSString с, чтобы у меня было

http://Link.com

SiteName

Я специально хочу показать SiteName в метке и просто использовать http://Link.com, чтобы открыть в UIWebView, но я не могу, когда это всего одна строка.Любые предложения или помощь с благодарностью.

Ответы [ 2 ]

8 голосов
/ 13 октября 2011
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'
2 голосов
/ 13 октября 2011

У NSString есть метод с подписью:

componentsSeparatedByString:

В качестве результата он возвращает массив компонентов.Используйте это так:

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

[components objectAtIndex:0]; //should be SiteName
[components objectAtIndex:1]; // should be http://Link.com

Удачи.

...