正規表現

正規表現でURLの表し方 | ドメインの抽出方法

正規表現でURLやドメインを抽出

正規表現でのURLは「https?://[\w.?=&#%~/-]+」

正規表現でURLを表す際には「https?://[\w.?=&#%~/-]+」とするとおおよそをカバーできます。厳密な書き方ではないので私的利用に留めるのがおすすめです。

// 基本的なURLの正規表現
^https?://[\w.?=&#%~/-]+$

// マッチするページの例
https://www.pokemoncenter-online.com/
https://www.pokemon.jp/look/comic/detail/20195.html
https://www.pokemoncenter-online.com/?s=special%2Findex
シャワーズ

↓のように特殊なURLの場合は「, + @」などをつかうケースもあります。その場合には適宜追加して様子をみましょう!

https://www.google.com/maps/place/43%C2%B035'31.1%22N+142%C2%B027'49.4%22E/@43.59198,142.46372,15z/data=!4m4!3m3!8m2!3d43.59198!4d142.46372?hl=ja&entry=ttu

【参考】

URLの中身の構成

URLはおおよそ次のようにわけられます。

  • https:プロトコル
  • www:ホスト
  • pokemoncenter-online.com:ドメイン
  • /look/comic/:ディレクトリ
  • detail:ファイル
  • ?s=special:パラメータ
  • #Findex:アンカー

このうち、記号が使われる例は次のとおりです。そのため、「https?://[\w.?=&#%~/-]+」と表現する際にはこれらの文字列が含まれています。

  • ドメインやファイルに「.」
  • ディレクトリに「/」
  • パラメータに「?」「=」「&」
  • アンカーに「#」

正規表現でドメインのみを抽出

正規表現にてドメインのみを抽出したい場合には「^(?:https?:\/\/)?(?:www.)?([A-Za-z0-9.-]+[^\/])」のような書き方をするとよいでしょう。こちらも厳密な表現ではありませんが、おおよそのキャプチャには使えます。

// 基本的なURLの正規表現
^(?:https?:\/\/)?(?:www\.)?([A-Za-z0-9.-]+[^\/])

// 検索対象
https://www.pokemoncenter-online.com/
www.pokemon.jp/look/comic/detail/20195.html
https://www.pokemoncenter-online.com/?s=special%2Findex

// キャプチャ(抽出)する部分
pokemoncenter-online.com
pokemon.jp
pokemoncenter-online.com