2017-01-16 66 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