我从不同来源获取RSS源。我收到了十几种不同类型的RSS输出。我正在使用XML解析器来解析/获取<item>
,<title>
,<link>
,<description>
标记。
获取每个项目的描述值后,我使用正则表达式来解析描述字段以获取图像链接(如果有)和清除文本。以下正则表达式适用于Yahoo / CNN订阅源。
@"<p><a.+?><img src=\"(.+?)\".+?<\\/a>(.+?)<\\/p>" ;
但是仍有一些不需要的字符留在说明中(上面的正则表达式中的第二个匹配)。
在这里,我正在寻找一些建议,如何使用不同的正则表达式来评估RSS描述并获得“明文”和&amp; “图像链接”。再次,使用大量正则表达式并比较每个正则表达式会导致性能损失。
总结一下,我在这里看到了两个问题。
构建不同的正则表达式,将每个正则表达式应用于描述字段,检查成功并获取输出。(应用4或5个正则表达式,将会出现性能损失)在此步骤中,我尝试将描述与&amp;图片链接。
上面的描述,仍然不是一个明确的文字,需要删除很多其他额外的字符和标签。我需要一个正则表达式来删除所有这些额外不必要的东西。已经做过这件事的人可以在这方面帮助我。
答案 0 :(得分:0)
你可以将所有不需要的字符放在一个集合中并清除你想要的字符串..检查这个函数
- (NSString *) stripTags:(NSString *)str{
NSString *clearString;
NSCharacterSet *doNotWant;
doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"-=+[]{}:/?.><;,!@#$%^&*\n()\r'"];
clearString = [[str componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
return clearString;}
我希望这会有所帮助。