Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想将两个正则表达式合二为一。
$exp1 =/<area.*?href="([^"]*)".*?[^>]*>/s; $exp2=/<a.*?href="([^"]*)".*?[^>]*>/s';
首先,在接触这些表达式之前,我会认真考虑使用适当的 HTML 解析器。
也就是说,你所追求的可能是这样的:
/<(?:a|area).*?href="([^"]*)".*?[^>]*>/s
该表达式是和(?:a|area)之间的交替;它被包裹在里面以对交替进行分组并将其视为非捕获子模式。aarea(?: ... )
(?:a|area)
a
area
(?: ... )
另见:子模式,交替
我认为应该这样做:
$exp =/<(?:area|a).*?href="([^"]*)".*?[^>]*>/s;
顺便说一句,尝试使用 regex 解析 [X]HTML是个坏主意。