2012-04-09 3 views
1

私はすべてのURLと一致するように、この正規表現を持っているし、素晴らしい作品避ける:preg_replace_callback正規表現に一致するすべてのURLや画像

$regex ='@((https?://)([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.\,]*(\?\S+)?)?)*)@';       
return preg_replace_callback($regex, 'replacing' , $content); 

を私は内部の試合のURLを避けるために必要があります。src="***"<a href="">***</>は、テキストを保持しますが、URLを交換したいです。

私が試した

:私の正規表現に否定を追加:

$regex ='@((?!src="|?!>)(https?://)([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.\,]*(\?\S+)?)?)*)@'; 

>

のhref hrefの任意のアイデアの間にあるとき、SRC =」 秒否定があるとURLがSTARTINされる最初の否定

+0

'(?!src =" |?!) 'とは何ですか?おそらく'(?<!src = ")'が必要です。 – kirilloid

答えて

0

は、<a>のケースを扱い、簡単には<img>のケースに対応することができます。 o HTMLが完全に有効であることを保証できない限り、単一のregexpでこれを行います(テキスト内に迷いのない引用符はありません)。

関連する問題