「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 正規表現を使用して URL を照合するにはどうすればよいですか?

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

2024 年 11 月 10 日に公開
ブラウズ:586

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 関数に渡します。例:

$url = 'www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL without protocol';
}

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

$url = 'http://www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL with protocol';
}

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

リリースステートメント この記事は次の場所に転載されています: 17295578​​58 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3