缩小正则表达式结果
Narrowing Regex results
我正在创建一个正则表达式。这是我的测试数据集:
<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>
我正在尝试从 "href=" 捕获到 "pdf",但以下正则表达式:
href=.*?\.pdf
如果它被隔离到一行,将捕获正确的数据,但它也会匹配最后一行的以下内容:
href="test.html">test1</a><a href="testtime.pdf
我只想要从最后一个 "href" 到“.pdf”,我不想在线上的第一个 "href" 或它与第二个 [=25] 之间的任何内容=].是否可以修改正则表达式以正确匹配它?
谢谢。
首先,使用捕获组,它们允许你匹配整个单词,但只提取它的一部分,例如 href=\"(.*\.pdf)\"
应该允许你匹配 href="xxxx.pdf"
字符串,但只提取xxxx.pdf
部分。
如何执行此操作取决于您使用什么技术来获取正则表达式。不知何故我怀疑这是 html.
使属性以引号开头且值不包含此引号:
href="[^"]*?\.pdf
演示:https://regex101.com/r/UuRin3/1
P.S.
Don't use Regex to parse HTML
我正在创建一个正则表达式。这是我的测试数据集:
<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>
我正在尝试从 "href=" 捕获到 "pdf",但以下正则表达式:
href=.*?\.pdf
如果它被隔离到一行,将捕获正确的数据,但它也会匹配最后一行的以下内容:
href="test.html">test1</a><a href="testtime.pdf
我只想要从最后一个 "href" 到“.pdf”,我不想在线上的第一个 "href" 或它与第二个 [=25] 之间的任何内容=].是否可以修改正则表达式以正确匹配它?
谢谢。
首先,使用捕获组,它们允许你匹配整个单词,但只提取它的一部分,例如 href=\"(.*\.pdf)\"
应该允许你匹配 href="xxxx.pdf"
字符串,但只提取xxxx.pdf
部分。
如何执行此操作取决于您使用什么技术来获取正则表达式。不知何故我怀疑这是 html.
使属性以引号开头且值不包含此引号:
href="[^"]*?\.pdf
演示:https://regex101.com/r/UuRin3/1
P.S.
Don't use Regex to parse HTML