2009-03-23 12:48 追記
サンプルコードを修正しました.(thanks to @clairvy)
サンプルコードを修正しました.(thanks to @clairvy)
はじめに
正規表現を使う方法の一つとして、qr// (quote regex) 演算子というのがあります。
正規表現愛 – にぽたん研究所
上記のエントリとか モダンPerl入門 とかを読んで qr// 演算子の存在を今さらながら知ったので,練習に励む(?)今日この頃,というか今日.
3月に入って何もアウトプットしていないので,メモだけでも.
メモ
とりあえず次のような感じで使ってみてます.
my $re = { null => qr{^\s*$}, trim => qr{^\s* (\S(?:.*\S)?) \s*$}x, int => sub { # 1引数: \d{m}, 2引数以上: \d{m,n}, 引数なし] \d{1,} my $mn = join ',', @_ ? ( $_[2] ? @_[0,1] : @_ ) : ( 1, '' ); qr{^\s* (\d{$mn}) \s*$}x; }, }; my $hoge = ''; my $fuga = ' ほげほげ ふがふが '; my $foo = '2009'; my $bar = ' 2008'; # 空白文字だけ if( $hoge =~ $re->{null} ) { print '空白文字だけ.'; } # 文字列の両端の空白を除去する my $fuga_trimmed = sprintf '%s', $fuga =~ $re->{trim}; # 指定した桁数(の範囲)の整数としてマッチさせ,ついでに両端の空白も除去する my $foo_int = sprintf '%d', $foo =~ $re->{int}->(4); my $bar_int = sprintf '%d', $bar =~ $re->{int}->(2,4);
おわりに
個人的には,
qr/.../;
よりも
qr{...};
で書くことがほとんどですね..
参考
-
モダンPerl入門 (CodeZine BOOKS)posted with amazlet at 09.03.22牧 大輔
翔泳社
売り上げランキング: 7230
3 Responses to “[perl] qr//演算子を今さら知りました”
コメントをドウゾ
最近の閲覧数
- [emacs] インデントをハイライトしてくれる「Highlighting indentation」で脱・インデント迷子
- IRC初心者がIRCを通知ツールとして使ってみる,または個人的IRC環境のメモ
- UbuntuとCentOSとにおけるlogrotateの挙動の違いでハマった
- aquaさんで開通間近の新東名高速道路を走ってきた
- Textile記法で手軽にWikiっぽく記録を残しておくツール「SiTeWiki」を作ってみた
- 「GTDme」というオレオレGTDツールを作って使い始めようとしています
- [git][perl] rebase祭りを支援するツール「git-rebase-matsuri」というのを書いてみた
- [perl] Cache::FileCacheが保存するファイルの中身を覗いてみるメモ
- Kansai.pm #14 へおジャマさせていただいてきた
- HTTPSとバックエンドなPlackアプリケーションとPlack::Middleware::ReverseProxyとHTTPヘッダ「X-Forwarded-HTTPS」と
最近のエントリ
- [perl] Image::Sizeで画像サイズを取得できないことがある件とその(アドホックな)対処方法
- 5月連休とaquaさん
- [perl][php] Textile記法+GeSHiでシンタックスハイライトするためのText::Textile::Pluggableプラグインを書いてみた
- [perl] Markdown記法をプラグインっぽく拡張できる「Text::Markdown::Pluggable」というモジュールを書いてみた
- [perl] Textile記法をプラグインっぽく拡張できる「Text::Textile::Pluggable」というモジュールを書いてみた
- aquaさんで入鹿池を2周してきた(約2年ぶり2回目)
- aquaさんで山崎川とか天白川とかの桜を眺めてきた(おまけで豊橋少々)
- サイクルショップカワタさんなツーリング@奈良
- 「魔法少女まどか☆マギカ展 名古屋会場」の写真いくつか
- Kyoto.pm #1に参加 & LTに飛び入らせていただいてきた
カテゴリー
タグ
-
actionscript
amon2
announce
bicycle
bookmarklet
cafe
cooking
cpan
della.js
dqwindowmanager
eating
elisp
emacs
event
gps
gtd
html
http
image
iphone
javascript
lifelog
linux
mac
mono
music
mylifehacks
mysql
mywebservice
neko
nicograph
onomichi
pc
perl
photo
plack
study
svn
tool
travel
twitomonitor
twitter
wcan
windows
wordpress
最近のコメント
-
No Responses.
最近のトラックバック
-
No Responses.


qr{…}; に同意.
なんだけど,最近 qw/ … / とかをよく見るような気がするので,// 派に転向しそうになってる派です.
http://search.cpan.org/~ribasu.....x/Class.pm
とか.
http://search.cpan.org/~mrambe.....atalyst.pm
とか.
長いものに巻かれろ派です.
@clairvy
これまで ‘/’ を含む文字列をパタンマッチにかける機会が多かった,というのが,’{}’ で囲むようになった唯一の理由ですね.
しかしよく考えると,’{}’ と打つのと ‘//’ と打つのとでは,打鍵や指の移動の量がけっこう違うんですよね.最近その辺が気になりだしてますw
ということで,明らかに ‘/’ を含まないような文字列を対象とする場合くらいは ‘//’ で囲うクセをつけてもいいよね,とか思っていたりはします.
ふむふむ.打鍵数もそうか.
大方の場合は // で良いのかもしれませんね.
どうでもいい短所としては,// だとエディタとかが良い感じにパースしてくんなかったり.というのがちょっと嫌な感じかもですね.上のとか.