регулярное выражение для удаления нежелательных тегов HTML в теге <description>канала RSS - PullRequest
0 голосов
/ 15 февраля 2012

Я получаю RSS-каналы из разных источников.Есть десятки различных типов RSS-сообщений, которые я получаю.Я использую синтаксический анализатор XML для анализа / получения тегов <item>, <title>, <link>, <description>.

После получения значения описания каждого элемента я использую регулярное выражение для анализаполе описания, чтобы получить ссылку на изображение (если есть) и открытый текст.Следующее регулярное выражение работает для фидов Yahoo / CNN.

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

Но все же в описании остаются некоторые нежелательные символы (второе совпадение в регулярном выражении выше).

Вот яищите некоторые предложения о том, как вставить другое регулярное выражение, чтобы оценить описание RSS и получить «открытый текст» и «ссылки на изображения».Опять же, добавление большого количества регулярных выражений и сравнение каждого из них приводит к снижению производительности.

Подводя итог, я вижу здесь две проблемы.

  1. Создание различныхregex, примените каждое из них к полю описания, проверьте успешность и получите вывод. (применение 4 или 5 regex, потеря производительности будет там) На этом шаге я пытаюсь отделить описание и ссылку на изображение.

  2. Описание, приведенное выше, все еще не является открытым текстом, необходимо удалить много других дополнительных символов и тегов.Мне нужно регулярное выражение здесь, чтобы удалить все эти лишние ненужные вещи.Кто-то, кто уже сделал это, может помочь мне в этом.

1 Ответ

0 голосов
/ 15 февраля 2012

вы можете поместить все ненужные символы в набор и очистить нужную вам строку .. отметьте эту функцию

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

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

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

return clearString;}

Надеюсь, это будет полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...