ホームページ  >  記事  >  バックエンド開発  >  正規表現を使用して、オプションの HTTP および WWW プレフィックスの有無にかかわらず URL を照合するにはどうすればよいですか?

正規表現を使用して、オプションの HTTP および WWW プレフィックスの有無にかかわらず URL を照合するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-22 08:42:03570ブラウズ

How to Match URLs with or Without Optional HTTP and WWW Prefixes Using a Regular Expression?

オプションの HTTP および WWW プレフィックスを使用した URL のマッチング

正規表現は、複雑なパターン マッチング タスクのための強力なツールです。 URL の一致に関しては、「http://www」が含まれるかどうかなど、形式が異なることがよくあります。

正規表現を使用した解決策

「http://www.」の有無にかかわらず URL を照合するには接頭辞として、次の正規表現を使用できます:

((https?|ftp)://)?
([a-z0-9+!*(),;?&=$_.-]+(:[a-z0-9+!*(),;?&=$_.-]+)?@)?
([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3})))
(:[0-9]{2,5})?
(/([a-z0-9+$_%-]\.?)+)*/?
(\?[a-z+&$_.-][a-z0-9;:@&%=+/$_.-]*)?
(#a-z_.-][a-z0-9+$%_.-]*)?

式の内訳:

  • (https?|ftp):/ / - オプションのプロトコル識別子 (http または ftp)
  • ([a-z0-9 !*(),;?&=$_.-] (:[a-z0- 9 !*(),;?&=$_.-] )?@)? - オプションのユーザーとパスワード
  • ([a-z0-9-.]*) .(([a-z]{2,4})|([0-9]{1,3}.([0-9]{1,3}).([0-9]{1,3}) )) - ホスト名または IP アドレス
  • (:[0-9]{2,5})? - オプションのポート番号
  • ( /([a-z0-9 $_%-].?) )*/? - オプションのパス
  • (?a-z &$_.-*)? -オプションのクエリ文字列
  • (#a-z_.-][a-z0-9 $%_.-]*)? - オプションのアンカー

使用例

指定された文字列が正規表現に一致するかどうかを確認するには、次の構文を使用します。

<code class="php">if(preg_match(~^$regex$~i, 'www.example.com/etcetc', $m))</code>

文字列が URL パターンに一致する場合、TRUE が返されます。 「http://www」の有無にかかわらず。接頭辞。

以上が正規表現を使用して、オプションの HTTP および WWW プレフィックスの有無にかかわらず URL を照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。