【问题标题】:RegEx for matching the last occurrence of a tag用于匹配标签的最后一次出现的正则表达式
【发布时间】:2019-09-24 07:09:01
【问题描述】:

我正在尝试从下面的 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,但正则表达式返回完整的字符串。

检查这个link

【问题讨论】:

  • 您是要提取整个 HTML 元素 &lt;a href="/kontakt-termin-verbeinaren/" data-link-title="Kontakt / Termin verbeinaren"&gt;Kontakt / Termin verbeinaren&lt;/a&gt; 还是仅提取其中的文本?
  • @Abdullah 我只需要得到“/kontakt-termin-verbeinaren/”
  • 仅供参考:它是“vereinbaren”而不是“verbeinaren”

标签: regex go regex-group regex-greedy


【解决方案1】:

This expression 可能会帮助您设计一个想要的:

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

它从使用(.*) 的开头滑动到最后一个href,然后您可以添加您希望捕获该目标 URL 的任何边界。

图表

这张图显示了它是如何工作的:

我不太确定,如果您只需要 URL 或整个标签。如果你想得到整个标签,那么表达式可以简单地修改为similar to

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
相关资源
最近更新 更多