そうコミュニティ!
私は正規表現が初めてで、それらに問題があります。ユーザーデータの単純なパーサーを備えたチャットスクリプトがあります。次のように、BBCode タグを使用して画像を埋め込む機能があります[img]http://example.com/image.png[/img]
。また、有効なハイパーリンクへの自動リンク変換も行いたいと考えています。2 つの処理用 REGEX がありますが、それらの間の競合を解決する方法がわかりません。
[img]
タグを処理するには、これを使用し、最初に実行します。
$line = preg_replace('/\[img\](https?:\/\/[a-zA-Z0-9%\-_?&=:+.\/]+)\[\/img\]/iU', '<a href="$1" target="_blank"><img class="incl_img" src="$1"></a>', $line, 5);
次に、リンクを処理するためにこれを使用します:
$line = preg_replace('#(https?:\/\/([a-zA-Z0-9-.]+)\/?[a-zA-Z0-9?&=.:\#\/\-_~%+]*)#e', '\'[<a href="$1" title="$1" target="_blank">$2</a>]\'',$line);
また、ユーザーが画像を投稿すると、リンク処理の正規表現は、リンクの代わりに<img>
その画像を挿入することでタグを壊します。特別なタグなど<a href=...
を使わずに回避するには?単純なリンクからタグ[url]
を分離する方法は? [img]
正規表現やアルゴリズムの修正は大歓迎です。前もって感謝します!