[PHP-users 27602] Re: 正規表現についてご教授の程、よろしくお願いします。

Eiji Miwa miwa @ offside.ne.jp
2005年 11月 24日 (木) 21:12:32 JST


 ミワです。

On 2005年 11月 24日 , at 10:34, 水沼寛喜 wrote:
>
> ●想定をしている動作環境
>
>  ・送信文字列
>   テスト<a href="http://www.yahoo.co.jp">yahoo</a>
>   yahooです。
>
>   ・置換処理後の想定している結果
>   テスト<a href="http://www.yahoo.co.jp">yahoo</a>
>   <a href="http://hoge.hoge">yahoo</a>です。
>
> 1行目の「yahoo」というURLとURLリンクに記述 
> されている文字には
> 反応しないで、2行目の「yahoo」という文字に正規表現によ 
> る置換処理
> を行いたい。

 こんなのでどうでしょう?
---
	$string = 'テスト<a href="http://www.yahoo.co.jp">yahoo!</ 
a><br>テストyahooです。';
	$keyword = 'yahoo';
	$pattern = sprintf('/(%s)(?=(?:(?!<\/a>).)*(?:<a(?:>|\s[^>]+>)|$))/ 
is',$keyword);
	$replacement = '<a href="http://hoge.hoge">$1</a>';
	var_dump(preg_replace($pattern,$replacement,$string));
---
 アンカーの閉じタグで判断してます。

--
 miwa at offside.ne.jp





PHP-users メーリングリストの案内