URL を適切な HTML リンクに置き換えるために、php 関数で次の正規表現を使用します。
return preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1" target="_blank">$1</a>', $s);
しかし、 $s の値が次のような文字列の場合
<li>http://www.link.com/something.pdf</li>
関数が返す
<li><a href="http://www.link.com/something.pdf</li">http://www.link.com/something.pdf</li></a></li>
正規表現を変更して意図した文字列を取得する方法を知っている人はいますか?
<li><a href="http://www.link.com/something.pdf">http://www.link.com/something.pdf</a></li> ?
「%」、「?」によって導入された URL の置換部分文字列から除外せずに また '&' ?