[#47667] 文字列中に含まれる 8 進数表記 "\nnn" というパターンに正規表現でマッチさせたい — Kensuke Kaneko <kyanny@...>
金子健介と申します。
7 messages
2010/12/01
[#47684] ネットワークに流れるパケットのキャプチャーについて。 — Tetsuo Beppu <anfojp@...>
はじめまして。
5 messages
2010/12/10
[#47705] Windows(CP932)でのRuby1.9のirbの実行について — 中川貴 <nora1962@...>
はじめまして中川と申します。
4 messages
2010/12/22
[#47715] Windowsで1.9.2p136+zlibのインストール — AOKI Yoshihiro <aoki@...>
あおきと申します。
14 messages
2010/12/27
[#47716] Re: Windowsで1.9.2p136+zlibのインストール
— "U.Nakamura" <usa@...>
2010/12/27
こんにちは、なかむら(う)です。
[#47717] Re: Windowsで1.9.2p136+zlibのインストール
— AOKI Yoshihiro <aoki@...>
2010/12/27
あおきです。
[#47719] Re: Windowsで1.9.2p136+zlibのインストール
— "U.Nakamura" <usa@...>
2010/12/27
こんにちは、なかむら(う)です。
[#47720] Re: Windowsで1.9.2p136+zlibのインストール
— AOKI Yoshihiro <aoki@...>
2010/12/27
あおきです。
[ruby-list:47667] 文字列中に含まれる 8 進数表記 "\nnn" というパターンに正規表現でマッチさせたい
From:
Kensuke Kaneko <kyanny@...>
Date:
2010-12-01 17:25:51 UTC
List:
ruby-list #47667
金子健介と申します。
8 進数表記と正規表現に関する質問です。
"Ver.1.01 \000\243" という文字列から "\000" と "\243" を取り除くような場合の
汎用的な方法について、アドバイスをいただきたいです。
以下、試した Ruby のバージョンは 1.8.6 です。
$ ruby -v
ruby 1.8.6 (2009-06-08 patchlevel 369) [universal-darwin9.0]
"\000" "\243" などが Ruby の 8 進数表記であり、 "\", "0", "0", "0" という
四文字からなる長さ 4 の文字列ではなくて、 "\000" という一文字のみからなる
長さ 1 の文字列である、ということは理解しました。
http://www.ruby-lang.org/ja/man/html/_A5EAA5C6A5E9A5EB.html#a.a5.d0.a5.c3.a5.af.a5.b9.a5.e9.a5.c3.a5.b7.a5.e5.b5.ad.cb.a1
"Ver.1.01 \000\243".split('')
#=> ["V", "e", "r", ".", "1", ".", "0", "1", " ", "\000", "\243"]
"\000".length
#=> 1
"\243".length
#=> 1
可能ならば、 "\nnn" というパターンすべてに正規表現でマッチさせて、
String#gsub でまとめて削除したいと思っています。
しかし、正規表現でうまくマッチさせることができません。
"Ver.1.01 \000\243".match( %r{\[0-9]+} )
#=> warning: regexp has `]' without escape
"Ver.1.01 \000\243".match( %r{\\[0-9]+} )
#=> nil
以下のように "\000" "\243" を個別に指定すればマッチさせられるのですが、
"\nnn" というパターンの全ての文字を個別に指定するのはできれば避けたいです。
"Ver.1.01 \000\243".match( %r{\000} )[0]
#=> "\000"
"Ver.1.01 \000\243".match( %r{\243} )[0]
#=> "\243"
そこで質問なのですが、
1. 文字列に含まれる "\nnn" というパターンに正規表現でマッチさせることは可能なのでしょうか?
2. 可能である場合、どのような正規表現を書けば良いのでしょうか?
3. 不可能である場合、 "\nnn" というパターンのみを文字列から削除する良い方法はないでしょうか?
以上、よろしくお願いします。
--
Kensuke Kaneko <kyanny@gmail.com>