2012年7月 1日

[ruby-list:48813] Re: 全角文字列中の全角及び半角スペースにマッチさせる正規表現

Zisaki です。
るびきちさん、どうもありがとうございました。
教えていただいたとおりに書き換えるとできました。
当初は str = を記述していたのですが、いろいろなサイトを参考に書き換えていく
なかで正規表現にばかり集中して消して事に気が付かなかったようです。

Zisaki, Takeshi

2012年7月1日 11:29 <rubikitch@xxxxx>:
> From: "Zisaki,Takeshi" <tanzanitez@xxxxx>
> Subject: [ruby-list:48810] 全角文字列中の全角及び半角スペースにマッチさせる正規表現
> Date: Sun, 1 Jul 2012 10:48:40 +0900
>
> るびきちです。
>
>> 趣味でrubyプログラミングをやっている Zisaki と言います。
>> 「全角文字列中の全角及び半角スペースにマッチさせる正規表現」が分からないので教えてください。
>>
>>
>> 1 ソース
>> # -*- encoding: utf-8 -*-
>>
>> # 23.の後に全角スペース、12.の後に半角スペースが存在
>> str = "H23. 12. 15"
>> puts str
>>
>> # \sの後に全角スペースがあり、全角、半角スペースを - に変換する。
>> str.gsub(/[\s ]/, "-")
>> puts str
>>
>>
>> 期待する結果
>> => H23. 12. 15
>> H23.-12.-15
>>
>> 実際の結果
>> => H23. 12. 15
>> H23. 12. 15
>
> 正規表現はあっています。
>
> ただ、
> str.gsub(/[\s ]/, "-")
> は、strを置換した新しい文字列を得て、その結果を捨てています。
>
> なので、変数に代入するか、str自身を書き換えるかすれば解決します。
>
> # 変数に代入する場合
> str = str.gsub(/[\s ]/, "-")
>
> # 自分自身を書き換える場合(破壊的メソッド)
> str.gsub!(/[\s ]/, "-")
>
> プログラミングに不慣れのようですので、
> 慣れるまでは前者をおすすめします。
>
> 自分自身を書き換えることには、思わぬ
> 落とし穴が潜んでいるからです。
>
> ====
> # -*- encoding: utf-8 -*-
>
> # 23.の後に全角スペース、12.の後に半角スペースが存在
> str = "H23. 12. 15"
> puts str
>
> # \sの後に全角スペースがあり、全角、半角スペースを - に変換する。
> str = str.gsub(/[\s ]/, "-")
> puts str
> # >> H23. 12. 15
> # >> H23.-12.-15
> ====
>
> --
> rubikitch
> Blog: http://d.hatena.ne.jp/rubikitch/
> Site: http://www.rubyist.net/~rubikitch/
> Twit: http://twitter.com/rubikitch/
> Emacsネット塾『Emacsの鬼るびきちのココだけの話』 http://tinyurl.com/76bnprd
> 『Emacs Lispテクニックバイブル』 http://tinyurl.com/6r6khos
> 『Emacsテクニックバイブル』 http://tinyurl.com/24yghag
> 『Ruby逆引きハンドブック』 http://tinyurl.com/pbfqwn
>


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




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