2017-01-16 11 views
-4

perlコードに$line =~ s/\^M $//という行があります。正規表現s/\^M $//は何を意味しますか?Perl正規表現の詳細

+0

これは、行末から^ M(Control-M、キャリッジリターンとも呼ばれる\ r)を削除しようとしているようです。つまり、DOSの行末をUnixの行末に変換します。しかし^ Mがあなたの端末やエディタのアーチファクトを表示していないことは確かですか?また、余分なスペース文字は、その目的のために得られるように見えます。 – Jens

答えて

1

$lineが終わり、正確なサブ文字列^M(帽子-EMM-スペース)が含まれている場合それは、最初のバックスラッシュの理由は^は正規表現で特別な意味とバックスラッシュのターンを持っていることですし、それを削除し

意味特別な意味をオフし、コピーペーストが不適切

を使用する場合、それは文字通り一致

は$ライン

の終わりに試合を強制的にアンカーがしばしば^ Mリテラル文字がファイルに終わるされます

+0

ありがとうございました... !!! –

+1

*** "コピーペーストが不適切に使用された場合、^ Mリテラル文字がファイルで終わることがよくあります" ***これは優れた点です。 – Borodin