我正在尝试使用正则表达式分割包含html代码的字符串:
NSString* regex = @"<.*?>";
NSString* html = @"<span class="test">Test1</span><span class="test">Test2</span><span class="test">Test3</span><span class="test">Test4</span>";
html = [html stringByReplacingOccurrencesOfString:regex withString:@""];
我想删除span-tags。
有什么想法吗?
答案 0 :(得分:5)
您可以使用this method执行此类操作:
NSRegularExpression *re = [NSRegularExpression regularExpressionWithPattern:@"<.*?>"
options:0
error:NULL];
NSString *result = [re stringByReplacingMatchesInString:html
options:0
range:NSMakeRange(0, [html length])
withTemplate:@""];
在上面的链接中查看文档中可能需要的选项。
答案 1 :(得分:1)
如果您的输入是HTML,则使用 HTML PARSER 。
使用正则表达式“解析”HTML是徒劳的。请注意,有很多关于在iO / OSX上描述HTML解析的问题。
答案 2 :(得分:1)
这只是删除&lt;和&gt;字符和它们之间的所有内容,我想这就足够了:
(NSString *) stripTags:(NSString *)str
{
NSMutableString *ms = [NSMutableString stringWithCapacity:[str length]];
NSScanner *scanner = [NSScanner scannerWithString:str];
[scanner setCharactersToBeSkipped:nil];
NSString *s = nil;
while (![scanner isAtEnd])
{
[scanner scanUpToString:@"<" intoString:&s];
if (s != nil)
[ms appendString:s];
[scanner scanUpToString:@">" intoString:NULL];
if (![scanner isAtEnd])
[scanner setScanLocation:[scanner scanLocation]+1];
s = nil;
}
return ms;
}