0

2 つの正規表現を 1 つに結合したい。

$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;

ところで、 [X]HTML を regex で解析しようとするのは悪い考えです。

于 2013-01-30T10:49:43.467 に答える