On Sun, 31 Aug 2008 11:47:17 +0900
Bunta <hi9t-ooy@...-net.or.jp> さんwrote:
> > Perlなんかでは、$というのは、文字列の末尾あるいは行末に改行文字がある
> >場合にはその直前の両方にマッチしますからね。sedはどうかな。
>
> なるほど。「両方」ですか。φ(.. ) いえ、その後Perlはまったくさわってなくて…。
> sedについて調べ方がよく分かりませんが、「常識として」(?)改行文字の後ろでないと変だと思う。
> だって「\n」って、「.」マッチしますから。
なんだか、おかしいですね。Doughertyのsed & awkの66ページのメタキャラク
タ一覧に「.」は「改行を除く任意の一文字にマッチする」と明確に定義されて
いますよ。
しかし、改行とは行末にあるもので、そのほかの位置にある改行は単なる一文
字と見做すということになっているということでしょうね。
> 単行のデフォルト読み込みではパターンスペースに改行文字はありません。
> 「^aaa$」です。
「^aaa$」はパターン表現であって、実際の文字列ではないです。行の「aaa」
と「aaa\n」のいずれかにマッチする正規表現パターンです。少なくともPerlで
はね^^)
「$は文字列の末尾に、もし末尾に改行文字がある場合にはその直前にマッチ
する」というのは、Perlでは常識ですから。
藤岡 和夫
kazuf@...
日曜プログラマのひとりごと http://homepage1.nifty.com/kazuf/renewal.html