正規表現を使用して URL を照合するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-22 08:45:03
オリジナル
328 人が閲覧しました

How to Match URLs Using Regular Expressions?

正規表現による URL のマッチング

正規表現は最初は難しいかもしれませんが、さまざまなデータ型に対して強力なパターン マッチング機能を提供します。 URL を抽出するコンテキストでは、URL 形式のバリエーションに対応する柔軟なパターンが必要です。

主要なプロトコルの有無にかかわらず URL をキャプチャできる 1 つの堅牢な正規表現 (例: "http://www" または " www") は次のとおりです:

((https?|ftp)://)? // Optional SCHEME
([a-z0-9+!*(),;?&=$_.-]+(:[a-z0-9+!*(),;?&=$_.-]+)?@)? // Optional User and Pass
([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3}))) // Host or IP address
(:[0-9]{2,5})? // Optional Port
(/([a-z0-9+$_%-]\.?)+)*/? // Path
(\?[a-z+&$_.-][a-z0-9;:@&%=+/$_.-]*)? // Optional GET Query
(#[a-z_.-][a-z0-9+$%_.-]*)? // Optional Anchor
ログイン後にコピー

PHP でこの式を使用するには、二重引用符で囲み、評価する URL とともに preg_match 関数に渡します。例:

<code class="php">$url = 'www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL without protocol';
}</code>
ログイン後にコピー

同様に、プロトコルを含む URL の場合:

<code class="php">$url = 'http://www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL with protocol';
}</code>
ログイン後にコピー

このパターンは、幅広い URL 形式をカバーすると同時に、「」などの文字を含む潜在的な悪意のある入力からも保護する必要があります。 /".

以上が正規表現を使用して URL を照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!