PHPで正規表現を使用してURLアドレスを抽出する方法
正則表現でURLアドレスを照合するには、preg_match 関数を使用します。
正規表現でURLをマッチさせているコードの例を以下に示します。
$url = 'http://www.example.com';
$pattern = '/^(https?|ftp):\/\/([^\s\/?#]+)(?:\/[^\s]*)?$/i';
if (preg_match($pattern, $url)) {
echo "URL地址匹配成功!";
} else {
echo "URL地址匹配失败!";
}
上のサンプルコードでは、 preg_match 関数を使ってURL アドレスをマッチしています。その際、正規表現のパターンは、 /^(https?|ftp):\/\/([^\s\/?#]+)(?:\/[^\s]*)?$/i を使用しています。
この正規表現のパターンの意味は次のとおりです。
- ^ は、文字列の先頭位置からマッチさせることを表す。
- http, httpsまたはftpで始まる文字列にマッチさせる(https?|ftp)
- ://はコロン、スラッシュ、スラッシュの連続したシーケンスをマッチさせる、つまり://記号のマッチを行う
- ([^\s\/?#]+)は、空白、スラッシュ、疑問符、シャープ以外の一連の文字と一致します。
- スラッシュと、スペース以外の任意の文字の連続(これは省略可能)を表します。
- $は文字列の末尾にマッチしたことを示します。
最後に preg_match 関数を使って URL を照合し、照合結果に基づいて適切な情報を表示します。
なお、これは単なるサンプルコードですので、より複雑なURLマッチングルールが必要な場合は、ご要望に合わせて正規表現のパターンを変更して下さい。