作者: 藤岡和夫
日時: 2008/8/31(16:33)
On Sun, 31 Aug 2008 12:51:13 +0900
藤岡和夫 <kazuf@...> wrote:

>  「$は文字列の末尾に、もし末尾に改行文字がある場合にはその直前にマッチ
> する」というのは、Perlでは常識ですから。

 すみません。言葉に惑わされていました。

 自分の書いた「実践実用Perl」を見直していると、$のマッチする場所として
書いているのですが、改行の後でも$はマッチする場合があります^^;)

 例えば、

while(<>){
    if(/^a$/){
        print;
    }
}

は、

^-----
a
-----$

にマッチして出力しますから、$は改行の前でマッチします。

 ところが、

while(<>){
    if(/^a\n$/){
        print;
    }
}

としてもマッチしますから、$は改行の後でマッチします。

 これが、Perlで実用的に問題になるのは、[^\w]というような表現を使った場
合、意図せずに行末の改行にマッチしてしまう場合です。

藤岡 和夫
kazuf@...
日曜プログラマのひとりごと http://homepage1.nifty.com/kazuf/renewal.html