From: Kensuke Kaneko Date: 2010-12-02T21:32:31+09:00 Subject: [ruby-list:47672] Re: 文字列中に含まれる 8 進数表記 "\nnn" というパターンに正規表現でマッチさせたい 木村さん 金子です。 どうやら僕には「\ 0 0 0 というキャラクタの並び」と「八進で000の値となる文字」の区別がついておらず、 的外れな質問をしてしまっていたことが理解できました。ありがとうございました。 2010年12月2日3:12 KIMURA Koichi : > 木村です。 > > Kensuke Kaneko さんは書きました (2010/12/02 2:25): > >> 以下のように "\000" "\243" を個別に指定すればマッチさせられるのですが、 >> "\nnn" というパターンの全ての文字を個別に指定するのはできれば避けたいです。 >> >> "Ver.1.01 \000\243".match( %r{\000} )[0] >> #=> "\000" >> >> "Ver.1.01 \000\243".match( %r{\243} )[0] >> #=> "\243" > > マッチ対象の文字列がダブルクォートでくくられていますから、実際には > \ 0 0 0 というキャラクタの並びじゃなくて、八進で000の値となる文字が > そこにあることになります(\243も同様)。 > > ですから、それにたいして \ のあとに数字の並びという正規表現をマッチさせようとしても > するわけがありません。 > > >> そこで質問なのですが、 >> >> 1. 文字列に含まれる "\nnn" というパターンに正規表現でマッチさせることは可能なのでしょうか? >> 2. 可能である場合、どのような正規表現を書けば良いのでしょうか? >> 3. 不可能である場合、 "\nnn" というパターンのみを文字列から削除する良い方法はないでしょうか? > > ということで良く考えれば 1. がきちんと実現できるはずです。 > > irb(main):003:0> "Ver.1.01 \\000\\243".match( %r{\\[0-9]+} ) > => # > > > -- > 木村浩一 > I thought what I'd do was, I'd pretend I was one of those deaf-mutes or should I? > mail kbk at kt.rim.or.jp > web www.kt.rim.or.jp/~kbk/zakkicho/ > homepage3.nifty.com/farstar/ > > > > -- Kensuke Kaneko