[#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

こんにちは、なかむら(う)です。

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

From: Tadashi Saito <shiba@...2.accsnet.ne.jp>
Date: 2010-12-01 17:55:49 UTC
List: ruby-list #47668
斎藤と申します。

ざっくり省きますが、

On Thu, 2 Dec 2010 02:25:51 +0900
Kensuke Kaneko <kyanny@gmail.com> wrote:

> 1. 文字列に含まれる "\nnn" というパターンに正規表現でマッチさせることは可能なのでしょうか?
> 2. 可能である場合、どのような正規表現を書けば良いのでしょうか?
> 3. 不可能である場合、 "\nnn" というパターンのみを文字列から削除する良い方法はないでしょうか?

irbに
  "\126\145\162\056\061\056\060\061\040\000\243"
などと入力したら、理解が深まるのではないでしょうか。

つまり
・あらゆる文字列はバイト(数値)の連なりであり
・1バイトは\nnnという8進数で表記できるため
・すべての文字列は\nnnの連なりで表せる
ということになります。

金子さんのおっしゃる「"\nnn" というパターン」とは何か、というのをじっくり考えてみる
と、見えてくるものがあるのではないでしょうか。

それで、結論を先回りすると、それはprintableでない文字を差すような気がします。もし
それが金子さんの欲するものであれば、
  somestring.split(//).select{|c| c =~ /[[:print:]]/}.join
で大丈夫なはずです。(ちなみにマルチバイト文字は、また別のお話になります。)

--
斎藤ただし

In This Thread