2009年10月8日木曜日

正規表現でマッチした文字列を後方参照

1. マッチした文字列を表す $&

どうも何度も忘れるなぁ~ (@_@;)

正規表現は基本的なことしか覚えていない。細かいことはその都度確認。それにしても何でこうも忘れるんだろう。

マッチした文字列を表わす、

$&

$ と & が横に並んでいると、一見ごちゃごちゃして見にくい。

 

2. 後方参照

後方参照を表わす $1, $2, … はまず忘れない。

マッチした文字の前の部分は $` で、マッチした文字の後方部分は $’ は意外にも覚えている。

なぜなら、以下を読んだから。

覚え方: `は文字列の前に置かれる

覚え方: 'は文字列の後ろに置かれる

(組み込み変数 - Rubyリファレンスマニュアル より)

 

3. 覚え方?

上記より、3 点セットで

`&’

というイメージを頭に描くのだけれど、真ん中だけなぜか思い出せなくなる。 (+_+)

`○’

○は何だっけ?と。

うーーーーーん、なんで & なんだろ?

 

4. 写経

JavaScript で練習。

"hogepiyofuga".replace(/piyo/, "--$&--");     // "hoge--hoge--fuga"
"hogepiyofuga".replace(/piyo/, "--$`--");     // "hoge--piyo--fuga"
"hogepiyofuga".replace(/piyo/, "--$'--");     // "hoge--fuga--fuga"