後方参照
さて、正規表現を扱う上で、後方参照という重要な仕組みがあります。
『正規表現がマッチするか評価したときに、マッチした文字列を変数に格納しておく』という仕組みです。
Ruby では、
しかし、マッチした文字列は、$1,$2,…といった変数から参照できます。
($0 はプログラムファイル名に当てられています)
『正規表現がマッチするか評価したときに、マッチした文字列を変数に格納しておく』という仕組みです。
Ruby では、
p /abc/ =~ "aabc"とかしても、マッチした文字の位置しかわかりません。
しかし、マッチした文字列は、$1,$2,…といった変数から参照できます。
($0 はプログラムファイル名に当てられています)
不思議だった点
「評価した順」に変数に格納されているようです。
しかし、以下のような正規表現を考えていたときに、
変数にどのように格納されているかわからなかったので書いておきます。
分からない場合は実際に実行してみてください。
しかし、以下のような正規表現を考えていたときに、
変数にどのように格納されているかわからなかったので書いておきます。
分からない場合は実際に実行してみてください。
p /((abc)|(bcd))/ =~ "bcdabc" p [$1,$2,$3]
0 件のコメント:
コメントを投稿