From: matz@... (Yukihiro Matsumoto) Date: 2000-05-16T13:56:05+09:00 Subject: [ruby-list:22613] Re: p option of Regexp まつもと ゆきひろです In message "[ruby-list:22611] Re: p option of Regexp" on 00/05/16, Wakou Aoyama writes: |> ドット ^, $ |> デフォルト 改行× 改行× |> 単独行/s 改行○ 改行× |> 複数行/m 改行× 改行○ |> 純粋複数行/ms 改行○ 改行○ |> |> さて、現時点でのRubyのデフォルトは「複数行」です。さらに言う |> と「単独行」と言う概念はありません。で、現在/pが付くとPerlの |> 「デフォルト」の挙動をとっていますが、これより「純粋複数行」 |> の方が望ましいと言う話でしょうか? | |/p の場合は「単独行」では? え? えーと、そうですね。改行にマッチするわけですから。 ちょっと勘違い。 |デフォルト (Perl の「複数行」) |\A__________$\n^__________$\n^__________\z | ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ |gsub(/.*/, '') で改行まで無くなってしまうのを防ぐ為に、. は改行にマッ |チしない。 | |/m (Perl の「純粋複数行」) |\A__________$\n^__________$\n^__________\z | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |複数行を扱う場合、このモードが欲しいのでは? | | |以下は、^, $ と同じ意味の \A, \z があるので、実質、不要。 | |/p (Perl の「単独行」) |\A^__________\n__________\n__________$\z | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |Perl のデフォルト |\A^__________\n__________\n__________$\z | ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ 「純粋複数行」が嬉しい点は理解しました。 さて、今後どうしましょう? * /p を「純粋複数行」にする * /m を「純粋複数行」にする(pは現状のまま) * /m を「純粋複数行」にする(pは無効にする) ふむ まつもと ゆきひろ /:|}