2011年9月23日

[ruby-list:48390] Re: splitの正規表現を改善したい

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

(2011/09/23 20:17), masayoshi takahashi wrote:
>> ちょっと今手元に「詳説 正規表現」がないので理屈がいえないのですが(つ まり身についてない)、エスケープ時のパターンとしては
>>
>> /\{(?:[^\}\\]+(?:\\.[^\}\\]*)*)\}/
>>

>> だったはずです。
>
> む、こういう書き方もあるんですね。
>
>> pat = [^区切り文字\\]
>>
>> として、
>>
>> pat+(\\.pat*)*区切り文字
>>
>> 最初のpat+で食えるだけ食っとくとお得、というのは変わりませんが。
>
> と思ったのですが、これって先頭にエスケープ要素(ここでは「\}」など)を 許さないパターンにならないでしょうか? 「{\}foo}」な
> どはマッチしたい 文字列なので、これは許せるようにしたいです。

すいません、おっしゃるとおりで+じゃなくて*じゃないといけませんでした。
まず食えるだけ食う、ということには変わりません。「詳説 正規表現」初版
第一刷「5章 正規表現を工夫する」のp.180だと

「開始 通常要素* (特殊要素 通常要素*)* 終了」

との書き方になっています。初版第一刷とか、前世紀なので、ページ数は大き
く変わっていると思います。

高橋さんの作られていた元のパターンから、どうしてこのような正規表現に変
形していくか、書かれています。
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)

iQEcBAEBAgAGBQJOfHGMAAoJEC7N6P3yLbI2xR0IANP+PiJtqqbRK9DVv6Lebm3A
w2zk+esUoxBZxWCjfC1FbIAdHSqwovNpPRZp/K787Dmb3M4sYYL98nmBEXUMBEn1
8tx3MlV5zTCC7SJ1AG7Hhtaa8M7ZVMX2a5rRPn3ZveJiJPZCeRZQWoU4iovcOMwa
sCNm2RZ63KdM/3mvfekBF9UKiTCtN/rIyI4V9FhGdZdhhJqFldpRQA3913hnPCGy
GmGIJSNm6X0ZXjxpptxHusUkIUT3lGssMaNdPt7lO8mqAlYjm6B4q5iLHU0VQq3V
7PFa3/RM8HHokcDff3dhVK2hdj1VfKeW+h3+fYjFet82fxmY4U62SnxSVUW1R+I=
=H4EA
-----END PGP SIGNATURE-----


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




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