如何删除所有<a> tags from an HTML block, and leave the rest?</a>

时间:2011-10-18 05:24:50

标签: iphone regex parsing uiwebview

我有一堆html,我准备在UIWebView中显示我正在处理的iPad应用程序。 HTML有许多不同的标签我可以使用,但有一堆带有无关链接的标签我需要删除。我将把这个文本放入一个sqlite db。

从HTML文本中获取所有a-tag的最佳方法是什么?我认为正则表达式是最好的方法,但我只是没有得到正则表达式。在线博客提到这个正则表达式是删除所有标签的方法:

 <(.|\n)*?>

那么我需要做些什么才能将其调整为特定的标签?或者我应该采取不同的方法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

你需要的正则表达式是:

<a.*?>|</a>

这匹配<a{something}></a> - 您需要删除的代码。我不知道ObjectiveC正则表达式的功能,请参阅Ron的帖子。

答案 1 :(得分:0)

试试这段代码:

NSString *str = @"Turn left onto <a>Sri Krishna Nagar Rd</a><div class=\"google_note\">Pass by <b landmarkid=\"0x39ed58475c24020f:0x170a2130a5880d5a\" class=\"dir-landmark\">California Academy of Visual Effects</b> <div class=\"dirseg-sub\">(on the left)</div>\n</div>";
str = [str stringByReplacingOccurrencesOfString:@"\\r\\n" withString:@""];
NSRange r;
while ((r = [str rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
    str = [str stringByReplacingCharactersInRange:r withString:@""];
NSLog(@"%@",str);
相关问题