【发布时间】:2012-02-06 19:30:20
【问题描述】:
我正在寻找一个正则表达式模式来验证我的 HTML 输入是否具有正确的结构并(可能在第二步中)从中提取一些信息。
输入文本示例:
<title>Example Title</title><br />
<link>Download:</link> <a href="URL">hier</a> | hoster1 <br />
<link>Download:</link> <a href="URL">hier</a> | hoster2 <br />
<link>Download:</link> <a href="URL">hier</a> | hoster3
标题、主机和 URL 当然可以更改并且很有趣,所以我的尝试是这样的:
<title>([^<]+?)</title><br />\s<link>Download:</link> <a href="([^"]+?)">hier</a> \| ([^<]+?)<br />\s
这些组可能看起来有点傻,但我也尝试过 (.*?),即使使用惰性模式,他也只会匹配整行。
-
现在第二部分( 部分)将匹配,但不能与
部分结合。我猜我的空白字符 (\s) 与新行不匹配?如何仅检查换行符? -
可用链接的数量是动态的,所以我不知道有多少 标签。如何将模式的后半部分用作可重复模式?我想做这样的事情(这显然行不通):
[ <link>Download:</link> <a href="([^"]+?)">hier</a> \| ([^<]+?)<br />\s ]*
这一切都是通过 MULTILINE 选项集完成的(虽然我不太确定我想做的事情是否需要它)。
我这几天尝试了一些不同的事情,但没有取得任何进展,我真的很感激一些指向正确方向的指示,谢谢。
【问题讨论】: