缩小正则表达式的结果

时间:2017-04-18 13:15:29

标签: html regex html-parsing

我正在创建一个正则表达式。这是我的测试数据集:

<a href="test.html">test1</a>
<a href="test.pdf">test2</a>
<a href="test.html">test1</a>
<a href="test.html">test1</a><a href="testtime.pdf">test2</a>

我试图从&#34; href =&#34;到&#34; pdf&#34;,但是以下正则表达式:

href=.*?\.pdf

如果它被隔离到一行,它将捕获正确的数据,但它也将匹配最后一行的以下数据:

href="test.html">test1</a><a href="testtime.pdf

我只想从最后一次&#34; href&#34;对于&#34; .pdf&#34;,我不想要第一个&#34; href&#34;在线或它与第二个&#34; href&#34;之间的任何东西。是否可以修改正则表达式以使其正确匹配?

感谢。

2 个答案:

答案 0 :(得分:2)

使属性以引号开头,值不包含此引号:

href="[^"]*?\.pdf

演示:https://regex101.com/r/UuRin3/1

P.S。

Don't use Regex to parse HTML

答案 1 :(得分:0)

首先,使用捕获组,它们允许您匹配整个单词,但只提取其中的一部分,例如href=\"(.*\.pdf)\"应该允许您匹配href="xxxx.pdf"字符串,但仅提取{{ 1}}部分。

如何执行此操作取决于您用于获取Regex的技术。不知怎的,我怀疑这是HTML。