2010年12月 2日

[ruby-list:47672] Re: 文字列中に含まれる 8 進数表記 "\nnn" というパターンに正規表現でマッチさせたい

木村さん

金子です。

どうやら僕には「\ 0 0 0 というキャラクタの並び」と「八進で000の値となる文字」の区別がついておらず、
的外れな質問をしてしまっていたことが理解できました。ありがとうございました。


2010年12月2日3:12 KIMURA Koichi <kbk@xxxxx>:
> 木村です。
>
> 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]+} )
> => #<MatchData "\\000">
>
>
> --
> 木村浩一
> 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 <kyanny@xxxxx>


投稿者 xml-rpc : 2010年12月 2日 21:32
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/100439
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。