使用</span>之间的变量字符从<span to =“”>中提取NSString的一部分

时间:2013-11-18 23:09:15

标签: ios objective-c nsstring substring

我有一个NSString,如:

NSString *s = @"<span class='class1'>here some text</span>";

class1可以是任何东西(比如class2,或largetext,或者其他)。

我想得到以下内容:

NSString *wantedString = @"here some text";

我该怎么做?

2 个答案:

答案 0 :(得分:0)

使用xml解析器是一个很好的解决方案,只要开销是值得的。

使用正则表达式:

NSString *s = @"<span class='class1'>here some text</span>";
NSString *pattern = @"<span class='[^']+'>([^<]+)";

NSRegularExpression *regex = [NSRegularExpression
                              regularExpressionWithPattern:pattern
                              options:NSRegularExpressionCaseInsensitive
                              error:nil];
NSTextCheckingResult *textCheckingResult = [regex firstMatchInString:s options:0 range:NSMakeRange(0, s.length)];

NSRange matchRange = [textCheckingResult rangeAtIndex:1];
NSString *match = [s substringWithRange:matchRange];
NSLog(@"Found string '%@'", match);

NSLog输出:

  

找到字符串'这里有一些文字'

答案 1 :(得分:-2)

如果此html已加载到Web视图中,请使用stringByEvaluatingJavaScriptFromString访问span标记的innerHTML。

stringByEvaluatingJavaScriptFromString可用于通过DOM(文档对象模型)访问html的任何部分,例如标记的内容。