金子です。
In message "[ruby-list:7404] Re: string replace"
on Thu, 9 Apr 1998 19:09:46 +0900, matz / netlab.co.jp (Yukihiro Matsumoto) writes:
matz> まつもと ゆきひろです
matz>
matz> |再び、文字列置換の話です。
matz> |
matz> |2)の修正を入れてしまうと、1バイトの '\' を正しく表現する方法がな
matz> |いような気がするのです。
matz>
matz> その通りですね.また,sub/gsubの2番目の引数は '' を指定する
matz> ことをお勧めしてます.これなら \\ と \' 以外は \ をそのまま
matz> 通すので,問題が減ります.
お勧めがあるのですか。
さすがに問題は把握されているのですね。
matz> |perl と違うし、直感的でもないのですが、現在の仕様は正解なので
matz> |しょうか?
matz>
matz> ではないかと思います.emacsの正規表現とかだと \ のエスケープ
matz> が重なってなかなか楽しいことになります.
ちょっと残念ですが、仕様が明確ならやりようはありますね。
でも、\ 1バイトを確実に変換するためには \\\\ と4つ重ねなければ
いけなというのはさすがにわかりにくいと思います。
あと、'\\' は \ に対するエスケープですが、'\a' は a に対するエスケープ
でなく、\a そのものをさすというのも曖昧ですよね。
このへん、マニュアルのどこかにきちんと説明が欲しいと思います。
# ruby本のコラムとかならベストなんですけど ...
--
金子 尚史 (KANEKO Naoshi) wbs01621 / mail.wbs.or.jp