為什麼不點(。)匹配換行符(n)

正規表示式中的 .*基本上意味著“捕獲所有內容直到輸入結束”。

因此,對於像 hello world 這樣的簡單字串,.*可以很好地工作。但是,如果你有一個字串代表檔案中的行,那麼這些行將由行分隔符分隔,例如類 Unix 系統上的\n(換行符)和 Windows 上的\r\n(回車符和換行符)。

預設情況下,在大多數正規表示式引擎中,. 與換行符匹配,因此匹配在每個邏輯行的末尾停止。如果你想 . 匹配真正的一切,包括換行,你需要啟用點百搭模式,你選擇的正規表示式引擎(例如,新增 re.DOTALL 在 Python 標誌,或 /s 在 PCRE。