株式会社エスロジカル
株式会社エスロジカル
セキュリティプロダクツ提供
Web開発、システム開発、UNIXシステム構築
個人情報保護方針

技術ドキュメント

技術ドキュメント目次 -> Perl -> 正規表現において // の代わりに || を使用する

本技術ドキュメントは、ここしばらくメンテナンスをしておりません。
内容が古くなっている可能性などございますこと、ご理解を頂けますようお願いいたします。



[オススメ] 国内最安のSSL証明書(RapidSSL 2880円、ジオトラスト 10500円、ベリサイン 39900円)
[オススメ] SSL証明書のアフィリエイトプログラム(最大11700円/1件の報酬を獲得いただけます)

◆ 正規表現において // の代わりに || を使用する

正規表現による操作をPerlで行う際に、
正規表現のパターンを // でくくりますが、
その // には違う文字列を使用することも可能です。

例えば次のようなコードがあった場合、

my $str = "Hello World!";

if ($str =~ /ello/) {
        print "match!!\n";
}

$str =~ s/World/Japan/;
print $str . "\n";


それを実行すると次のようになりますが、

$ perl test.pl
match!!
Hello Japan!
$


同じ正規表現の処理を次のように、
// ではなくて || によって行うことも可能になります。

my $str = "Hello World!";

if ($str =~ m|ello|) {
        print "match!!\n";
}

$str =~ s|World|Japan|;
print $str . "\n";


なお、この際、
/ello/ の箇所が m|ello| となっていて、| の前に m があることにご注意ください。

正規表現でマッチするかを調べるときには基本的には mが必要なのですが、
// を使用するときは m が省略可能となっているため、
// 以外の文字で正規表現マッチを行うときには mが必要になっています。

◆ どんなときに便利か

例えば Perl の CGIの中で、
/somedir/ を /otherdir/ に置換したいときなど、
/ を含む文字列を正規表現で扱う場合に、// でパターンを指定すると、
次のように \ でのエスケープを行う必要が出てちょっと見にくくなってしまいます。

s/\/somedir\//\/otherdir\//


そのような場合には、||でパターンの指定を行い、
次のようにしたほうが視覚的に見やすくなり便利です。

s|/somedir/|/otherdir/|




■ Perl についての他のドキュメント


■ 他のグループのドキュメント

Apache  /  Linux  /  FreeBSD  /  OpenSSL  /  Perl  /  HTTPプロトコル  /  Jakarta Tomcat  /  Java  /  NetBSD  /  Oracle  /  PostgreSQL  /  UNIX の C言語  /  UNIX のコマンド  /  Windows  /  bind  /  システム運用TIPS

アンケートにご協力をお願いいたします。

1. この技術ドキュメントへの評価をご選択ください。
大変良い  良い  普通  悪い  大変悪い  ノーコメント

2. ご感想をご自由にお書きください。



自社運営サイト: SSL証明書 / 改ざん検出 / 秘密分散法 / 暗号化ソフト / OpenIDサイト一覧 / IPアドレス表示 / リンク切れチェック / RapidSSL / ジオトラスト / ベリサイン / SSL

Copyright (C) 2006-2008 Slogical Corporation. All Rights Reserved.
ご意見などは、こちらのお問い合わせ用ページ からお願いいたします。

本サイト上の文書で記載または紹介している会社名、商品名は一般に各社の商標または登録商標です。
本サイト上の文書中では、TM マークおよび R マークを明記していない場合があります。