0

我正在尝试使用此 RegEx 捕获文档的一小部分:

preg_match('/href="(.+?)".+?>Keyword/s', $a, $b);

但是,它不是直接抓取 .href=之前的Keyword,而是从href=文档的第一个开始,一直Keyword

我怎样才能使它回溯并只保留href=之前的内容Keyword

4

2 回答 2

2

如果在输入中,锚标记包围的文本与标记在同一行,则可以删除该s标志。

否则,您需要更具体的正则表达式:

'/href="[^"]*"[^<>]*>Keyword/'

这假设里面的链接href不包含". [^<>]防止其他标签成为匹配的一部分。

于 2013-02-12T07:38:09.497 回答
0

假设 no"可以在href属性内,您可以开始调整您的正则表达式:

preg_match('/href="([^"]+?)".+?>Keyword/s', $a, $b);
于 2013-02-12T07:37:55.597 回答