[ruby-list:41680] Re: 正規表現について

From: Takeyuki Fujioka <fuji@...>
Date: 2005-12-07 03:03:25 UTC
List: ruby-list #41680
藤岡です。

なるほど、ありがとうございました。
希望どおりの結果になりました。
ブロックのほうが見安くてきれいですね。

Akihito Tsukamoto wrote:
> 塚本です。
> 
> keiichi matsunagaさんの<439649a0.4529%ma2@lifemedia.co.jp>から
> 
>>|str.gsub(/[%$_^]/,"\\#{$1}") といった感じにやって
>>
>> マニュアルよると,置換文字列には「$数字」は使えないけど「\数字」は使
>>えるみたいですね。
>>
>>irb(main):027:0> str.gsub(/[%$_^]/,'\\ \\1')
>>=> "abc\\ %def\\ $ghi\\ _jkl\\ ^mno"
>>
>>irb(main):028:0> str.gsub(/([%$_^])/,'\\\\1')
>>=> "abc\\1def\\1ghi\\1jkl\\1mno"
>>
>> あれ'\\\\1'にするとうまくいかないのはなぜだろう。「\\\\」→「\\」の
>>エスケープが優先されちゃうから?
> 
> 
> str.gsub(/([%$_^])/,'\\\\\\1')
> とすれば、いけますね。
> 
> str.gsub(/([%$_^])/){"\\#$1"}
> の方が見やすいかも。
> 
> http://www.ruby-lang.org/ja/man/?cmd=view;name=trap%3A%3A%5C%A4%CE%B1%C6%B6%C1
> を参考にしました。
> 


In This Thread

Prev Next