燈明日記 このページをアンテナに追加 RSSフィード

ごあいさつ

燈明日記へようこそ!!

燈明日記の主なテーマは、以下の通りです。

そして、燈明日記へ来られたのも『私』と『あなた』の何かのご縁です。なので、どうぞごゆっくりご覧下さい!


2009/1/25(日)

[] マッチ演算子(m//)のx修飾子について(IPアドレス正規表現

IPアドレスの正規表現を探していて、マッチ演算子(m{})のx修飾子のことを知りました。

マッチ演算子のx修飾子とは、パターンの中の空白文字やコメントを無視することができます。

ちなみに、空白文字とは、半角スペース、タブ、改行文字の総称です。

use strict;
use warnings;

my $IPAddress = "172.11.11.255";
if ($IPAddress =~ m{
                   ^ ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] ) # コメント1
                  \. ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] ) # コメント2
                  \. ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] ) # コメント3
                  \. ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] ) # コメント4
                   $
                }x) {
    print "IPアドレスです!\n";
}
else {
    print "IPアドレスでないです!\n";
}

上記は、パターンの中に半角スペース、改行文字とコメントが含まれていますが、それらはx修飾子を使用することでパターンの要素としては無視されます。


ちなみに、上記の正規表現は、IPアドレス正規表現です。

x修飾子を使わないで記述すると以下の感じです。

use strict;
use warnings;

my $IPAddress = "172.11.11.255";
if ($IPAddress =~ /^(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])$/) {
    print "IPアドレスです!\n";
}
else {
    print "IPアドレスでないです!\n";
}

尚、本コンテンツは、以下のページを大変参考にさせて頂きました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/chaichanPaPa/20090125/1232848784