Поиск элемента в регулярном выражении

163
11 октября 2017, 06:01

Добрый день! Пишу регулярное выражение для автоматической загрузки файлов с сайта, столкнулся с проблемой не могу найти элемент с тегом <a href> HTML:

<div class="views-field views-field-title">        <span class="field-content"><a href="/ru/press/news/40586-maksim-bystrov-prinyal-uchastie-vo-vserossiyskom-soveshchanii-po-itogam-podgotovki"><strong>Максим Быстров принял участие во Всероссийском совещании по итогам подготовки к ОЗП 2017-2018 годов</strong></a></span>

Моя регулярка:<div class="views-field views-field-title">[^&/]+<span class="field-content"><a href="([^&/]+)"><strong>([^&/]+)</strong></a></span>

Answer 1

В Вашем выражении несколько проблем. Во-первых, Вы не экранируете специальные символы (а именно - слэш). Во-вторых, Вы очень странным образом захватываете пробельные символы. Для этого есть специальный синтаксис - \s. В третьих, чтобы сделать регулярное выражение более читаемым, группы в нем стоит именовать. Вот пример более-менее подходящего Вам выражения:

<div class="views-field views-field-title">\s*<span class="field-content">\s*<a href="(?<ref>[^"]*)">\s*<strong>(?<text>[^<]*)<\/strong>\s*<\/a>\s*<\/span>

Тут можно посмотреть, как оно работает.

А вообще, в таких случаях лучше использовать уже готовые парсеры, и искать нужные Вам данные через XPath.

READ ALSO
Hibernate не хочет преобразовывать результат

Hibernate не хочет преобразовывать результат

Делаю выборку через createSQLQuery, возвращаться должна таблица ProductBrand

131
Непредвиденная появление

Непредвиденная появление

Добрый день, пытаюсь запустить WebSphere, но ничего не выходитКогда пытаюсь запустить через ярлык, то ничего не понятно, консоль быстро закрывается

153
Использование List&lt;&gt; в C#

Использование List<> в C#

Программировать только учусь

203
Распределение файлов внутри проекта C#

Распределение файлов внутри проекта C#

Не пойму в чем проблемаСоздал папку внутри проекта:

228