foreach my log (@blog)

Perl ネタ

【Perl おぼえがき】正規表現で URL からドメイン名 (サブドメイン) 部分を取得したい。





正規表現

ファイル名やらパラメータやら色々含まれた URL があったとして、Perl を使って URL からドメイン名 (いわゆる FQDN) を抜き出したいです。

正規表現を使います。




#!/usr/bin/perl

use strict;
use warnings;

my $url = "https://www.google.co.jp/search?q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE&oq=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE&aqs=chrome..69i57j69i61.4372j0j1&sourceid=chrome&es_sm=0&ie=UTF-8";

if ($url =~ /^(http|https):\/\/([-\w\.]+)\//) {
print "$2\n";
}

> www.google.co.jp




print で $2 を指定しているので ([-\w\.]+) にマッチした部分が返ります。

([-\w\.]+) では、- (ハイフン) と \w でドメイン名に使用できる文字列を指定して、これに .(ドット) も含めることで属性 JP であろうが、.com であろうがマッチすることが出来ます。

([-\w\.]+) の後ろに /(スラッシュ) があるので https から最初の /(スラッシュ) までの間の文字列をグループ化した正規表現でマッチさせて $2 で print しています。

http と https をグループ化しているので print で $1 を指定すると https が返ります。






同じカテゴリー(Perl ネタ)の記事
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。
TI-DA
てぃーだブログ
プロフィール
chinji
chinji

PAGE TOP ▲