RegEx для сопоставления последнего вхождения тега - PullRequest
3 голосов
/ 06 мая 2019

Я пытаюсь извлечь контактную ссылку из кода HTML ниже. Я пробовал это, но, похоже, не работает:

\"([^\"]*)\"(.*?)?\>(Kontakt)

и некоторая часть HTML-кода:

<li id="cc-nav-view-2315645627" class="jmd-nav__list-item-0">
    <a href="/" data-link-title="Start" class="cc-nav-current j-nav-current jmd-nav__link--current">Start</a>
</li>
<li id="cc-nav-view-2315645625" class="jmd-nav__list-item-0">
    <a href="/öffnungszeiten-schließzeiten/" data-link-title="Öffnungszeiten &amp; Schließzeiten">Öffnungszeiten &amp; Schließzeiten</a>
</li>
<li id="cc-nav-view-2316315025" class="jmd-nav__list-item-0">
   <a href="/flyer/" data-link-title="Flyer">Flyer</a>
</li>
<li id="cc-nav-view-2315732425" class="jmd-nav__list-item-0">
    <a href="/anfahrt/" data-link-title="Anfahrt">Anfahrt</a></li>
<li id="cc-nav-view-2315645825" class="jmd-nav__list-item-0">
    <a href="/kontakt-termin-verbeinaren/" data-link-title="Kontakt / Termin verbeinaren">Kontakt / Termin verbeinaren</a>
</li>

Мне нужно получить последнее a href вхождение по контактной ссылке, но регулярное выражение возвращает полную строку.

Проверьте эту ссылку .

1 Ответ

1 голос
/ 06 мая 2019

Это выражение может помочь вам создать желаемое выражение для этого:

(.*)(<a href=")([A-z0-9-\/]+)(".*)

Проведите от начала, используя (.*) к последнему href, затем вы можете добавить любую границу, которую вы хотите захватить этим целевым URL.

enter image description here

Graph

Этот график показывает, как это работает:

enter image description here

Я не уверен, хотите ли вы только URL или весь тег. Если вы хотите получить весь тег, выражение может быть просто изменено на что-то похожее на :

(.*)((<a href=")(.*)(\<\/a\>))
...