0

我想将两个正则表达式合二为一。

$exp1 =/<area.*?href="([^"]*)".*?[^>]*>/s;
$exp2=/<a.*?href="([^"]*)".*?[^>]*>/s';
4

2 回答 2

1

首先,在接触这些表达式之前,我会认真考虑使用适当的 HTML 解析器。

也就是说,你所追求的可能是这样的:

/<(?:a|area).*?href="([^"]*)".*?[^>]*>/s

该表达式是和(?:a|area)之间的交替;它被包裹在里面以对交替进行分组并将其视为非捕获子模式。aarea(?: ... )

另见:子模式交替

于 2013-01-30T10:49:47.853 回答
0

我认为应该这样做:

$exp =/<(?:area|a).*?href="([^"]*)".*?[^>]*>/s;

顺便说一句,尝试使用 regex 解析 [X]HTML是个坏主意。

于 2013-01-30T10:49:43.467 回答