PHPを使用してチャットクライアントの非常に緩い正規表現一致を実現しようとしています。
チャット クライアントは、完全な URL と不完全な URL の両方を取得できる必要があります。
例えば:
http://www.example.com
またはwww.example.com
またはexample.com
これを達成しようとする preg_replace を設定しました。
$find = array("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/is","/(^(?!http:\/\/)[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4}(\/?\S*)?)/is");
$replace = array( "<a target=\"_blank\" href=\"http://\\1\">\\1</a>","<a target=\"_blank\" href=\"\\1\">\\1</a>");
$output = preg_replace($find, $replace, $input);
したがって、目的は、最初にプロトコルを使用して「完全な」URL を見つけ、次にプロトコルを持たない「怠惰な」URL を見つけようとすることです。
現在のところ、「完全な」URL では問題なく動作しますが、「遅延」URL は取得されません。