2012-04-19 10 views
0

通常のリンクを解析しようとしていますが、そのリンクに沿って、テキストの代わりに画像が含まれる類似のリンクがあります。Regex:アンカーにimgを含まないリンクを解析する

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

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

+1

サンプルHTMLを一致させて投稿できますか? – HappyTimeGopher

+2

a)より具体的な情報(たとえば、入力が機能していないなど)を提供し、b)HTMLパーサーを使用する必要があります。 – hakre

+0

質問に関連するコードを投稿してください。あなた自身の質問を編集して、問題の本文に追加することでそうすることができます。それは私たちがあなたを助けるのに役立ちます。 –

答えて

0

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

http://regexr.com?30n1q

どのように?

+0

hrefの前にクラスがある場合はどうなりますか? hrefが大文字であればどうなりますか? hrefの終了クオートと閉じ括弧の間にスペースがある場合はどうなりますか? – HappyTimeGopher

+0

@HappyTimeGopherそんなに守る必要はありません。彼はそのような具体的な要求をしなかった。 – Jack

+0

ちょうどその点を作ろうとしています。多くの場合、誰かが質問を投稿すると、彼らはすべての影響を認識していないので、エッジケースについて質問することはできません。 – HappyTimeGopher

0

あなたがタグ内にマッチした任意のタグを使用しない場合は、ページ上のすべてのタグから内部HTMLを取得し、これを試してください:あなたのコメントを踏まえて

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

は...

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

を味わうために、他の許容タグを追加:私はおそらく、モンスターの正規表現を避けるために行うだろうと何

は、これを行うその後、上記を使用しています。この方法では、最後の文字列に厄介なタグがないことも保証されます。これについて

+0

大胆または他のタグがあるような画像の場合は、私は気にしません。あなたのパターンは微調整できますが、私は試してみますが、正規表現はあまり良くありません。 –

関連する問題