単純な文字列操作は正規表現は使わない

back
正規表現は、意外と処理が重いので、簡単な処理は substr, index 等の文字列操作関数を使う

例

foo@bar.example.org  ->  bar.example.org
メールアドレスから、ドメイン部分を取得する。

(1) substrindex を使う
$addr = 'foo@bar.example.org';
$domain = substr $addr, index($addr, '@') + 1;

(2) パターンマッチを使う
$addr =~ /\@(.*)/;
$domain = $1;

(3) split を使う
($domain) = (split /\@/, $addr)[1];


(1) の処理時間を 1 とすると、
(2) は 2~3
(3) は 3~4
くらいになる。
(まぁ、場合によってはかわるけど)

back