正規表現道場@2ch Part4
■ このスレッドは過去ログ倉庫に格納されています
0452nobodyさん
2005/06/26(日) 16:40:57ID:???htmlタグ内のurlにもマッチしてしまうので、困ってます。
環境は PHP 4.3系 です。
コードは
$str = preg_replace('/(?:href=["\']){0}((?:https?|ftp):\/\/[-_.!~*\'\(\)a-zA-Z0-9;\/\?:\@&=+\$,%#]+)/', '<a href="\1">\1</a>', $str);
や
$str = preg_replace('/(?:^href=["\'])((?:https?|ftp):\/\/[-_.!~*\'\(\)a-zA-Z0-9;\/\?:\@&=+\$,%#]+)/', '<a href="\1">\1</a>', $str);
$str = preg_replace('/([^"]|^)((?:https?|ftp):\/\/[-_.!~*\'\(\)a-zA-Z0-9;\/\?:\@&=+\$,%#]+)/', '\1<a href="\2">\2</a>', $str);
$str = preg_replace('/([^=^"]|^)((?:https?|ftp):\/\/[-_.!~*\'\(\)a-zA-Z0-9;\/\?:\@&=+\$,%#]+)/', '\1<a href="\2">\2</a>', $str);
と、色々試して見てますが、
やはりどれもタグ内のURLにもマッチしてしまいます。
良く使われるパターンだろうけども、検索結果や他の人のコードを見ても上記のようなコードしか得られません。
どなたか分かる方いますか?
■ このスレッドは過去ログ倉庫に格納されています