正規表現での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