0

通常のリンクを解析しようとしていますが、そのリンクとともに、テキストの代わりに画像が含まれている同様のリンクが存在する場合があります。

私はこのパターンを使用しています:"#_blank\">(.*?)</a>#is、しかしこれはアンカーに画像を含むリンクにも一致します。

画像を含まないものだけを解析するにはどうすればよいですか?

4

2 に答える 2

0

タグ内でタグを一致させたくない場合は、これを試して、ページ上のすべてのタグから内部htmlを取得してください。

#<a [^>]+>([^<]+)</a>#si

あなたのコメントに照らして...

モンスターの正規表現を回避するために私がおそらく行うことは、上記を使用してからこれを行うことです。

$output = strip_tags( $match[1], '<b><i><u>' );

他の許容可能なタグを追加して味わってください。このアプローチにより、最終的な文字列に厄介なタグがないことも保証されます。

于 2012-04-19T22:24:32.303 に答える
0

<a href=".*?">(?!<img.*?>).*?</a>

http://regexr.com?30n1q

これはどう?

于 2012-04-19T22:37:02.567 に答える