Нужна помощь в получении определенных частей RSS-канала с помощью Regex - PullRequest
0 голосов
/ 29 августа 2011

Мне нужно извлечь название компании (JTA Connection) перед первыма также крайний срок и местоположение, желательно без частей "Deadline:" и "Location:" из RSS-канала ниже с использованием REGEX.

<description>JTA Connection Oy<br /> Työsuhde: <br /> Työn laatu: <br />Deadline: 07.09.2011<br />Location: Avoin<br /></description>

Я немного растерялся, когда дело доходит до извлечения определенных частейс регулярным выражением, поэтому любая помощь будет приветствоваться.

Ответы [ 2 ]

2 голосов
/ 29 августа 2011

Файл RSS - это файл XML, поэтому его лучше всего анализировать с помощью анализатора XML. Если у вас есть часть описания, было бы тривиально разбить ее на массив в большинстве языков и намного эффективнее сравнить начало строк, используя «Word:», чтобы получить интересующие вас данные. просто я бы не использовал регулярные выражения.

0 голосов
/ 29 августа 2011

Название компании:

<description>([^<]+)

Крайний срок:

Deadline:\s([^<]+)

Местоположение:

Location:\s([^<]+)

Каждый раз, когда искомый результат сопоставляется группой1. Вы также можете использовать функцию «смотреть за», если ваш язык программирования позволяет это.

Вы также можете сопоставить всю строку и получить каждую группу отдельно:

<description>([^<]+)<br\s?/>([^<]+)<br\s?/>([^<]+)<br\s?/>Deadline:\s([^<]+)<br\s?/>Location:\s([^<]+)<br\s?/></description>

В этом случае, название компании соответствует группе 1, срок группе 4 и местоположение группе 5.

Я предполагаю с этим ответомчто RSS, который вы анализируете, всегда имеет такую ​​точную структуру.Я бы посоветовал использовать синтаксический анализатор XML, если это не так .

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