作者: 藤岡和夫
日時: 2008/8/31(12:51)
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