正则表达式,用于删除rss feed </description>的<description>标记中不需要的html标记

时间:2012-02-15 06:43:35

标签: iphone xml regex rss nsregularexpression

我从不同来源获取RSS源。我收到了十几种不同类型的RSS输出。我正在使用XML解析器来解析/获取<item><title><link><description>标记。

获取每个项目的描述值后,我使用正则表达式来解析描述字段以获取图像链接(如果有)和清除文本。以下正则表达式适用于Yahoo / CNN订阅源。

@"<p><a.+?><img src=\"(.+?)\".+?<\\/a>(.+?)<\\/p>" ;

但是仍有一些不需要的字符留在说明中(上面的正则表达式中的第二个匹配)。

在这里,我正在寻找一些建议,如何使用不同的正则表达式来评估RSS描述并获得“明文”和&amp; “图像链接”。再次,使用大量正则表达式并比较每个正则表达式会导致性能损失。

总结一下,我在这里看到了两个问题。

  1. 构建不同的正则表达式,将每个正则表达式应用于描述字段,检查成功并获取输出。(应用4或5个正则表达式,将会出现性能损失)在此步骤中,我尝试将描述与&amp;图片链接。

  2. 上面的描述,仍然不是一个明确的文字,需要删除很多其他额外的字符和标签。我需要一个正则表达式来删除所有这些额外不必要的东西。已经做过这件事的人可以在这方面帮助我。

1 个答案:

答案 0 :(得分:0)

你可以将所有不需要的字符放在一个集合中并清除你想要的字符串..检查这个函数

- (NSString *) stripTags:(NSString *)str{
NSString *clearString;
NSCharacterSet *doNotWant;

doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"-=+[]{}:/?.><;,!@#$%^&*\n()\r'"];

clearString = [[str componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];

return clearString;}

我希望这会有所帮助。