Objective-c фильтрует ссылку из тега в строке NSString - PullRequest
0 голосов
/ 27 марта 2012

Я получаю html обратно с сервера, отформатированного как

<a href="index.html/page1/sub1">www.mysite.com</a>

это NSString

Как я могу отфильтровать мою NSString, чтобы я оставил только "www.mysite.com"между тегами <a>?

Ответы [ 3 ]

1 голос
/ 27 марта 2012

Вы можете попробовать с NSSCanner,

NSString *mystring = @"<status>SUCCESS</status>";
NSString *neededString = nil;
NSScanner *scanner =[NSScanner scannerWithString:mystring];
[scanner scanUpToString:@">" intoString:&neededString];
[scanner scanString:neededString intoString:NULL];
[scanner scanString:@">" intoString:NULL];
[scanner scanUpToString:@"<" intoString:&neededString];
NSLog(@"%@",neededString)
1 голос
/ 27 марта 2012

Использовать NSRegularExpression:

NSString *string = @"<a href=\"index.html/page1/sub1\">www.mysite.com</a>";
string = [string stringByReplacingOccurrencesOfString:@"<.+?>" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, string.length)];

Для получения дополнительной информации о регулярных выражениях в target-c и более сложных примерах см. Документацию: https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

0 голосов
/ 27 марта 2012

Если вы достаточно уверены в формате, вы можете получить индекс первого> символа, а затем первого <символа после этого, а затем взять подстроку, которая начинается после первого индекса и заканчивается после второго. </p>

Есть несколько способов сделать это, включая

NSArray *a = [ string componentsSeparatedByCharactersInSet: ... ]

и

NSRange r = [ string rangeOfCharacterFromSet: ... ];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...