我有這個腳本,做一些正則表達式替換文件。我不明白爲什麼返回的字符串的所有換行符被刪除?爲什麼powershell Regex.Replace吞噬換行符?
樣品文件內容(UTF-8,與在每一行後CR-LF):
hello
hello
hello
的腳本:
$content = Get-Content "c:\spikes\regexnewline\regexnewline.txt"
Set-Content "c:\spikes\regexnewline\regexnewline-2.txt" $content # test
$content = [regex]::Replace($content, "ll", "yy") #basic replace
Set-Content "c:\spikes\regexnewline\regexnewline-3.txt" $content
當然,文件regexnewline-2.txt
是輸入的精確副本文件。但是regexnewline-3.txt
怎麼只在一行上有內容,最後只有一個CR-LF?
heyyo heyyo heyyo\CR\LF
顯然我在這裏錯過了一些東西。任何人都可以發現它?
順便說一句,我試圖玩正則表達式。更換和使用重載4個參數,指定RegexOptions
,as documented on MSDN,但腳本失敗,說這個方法沒有4個參數的重載。 Powershell是否使用.Net框架的不同版本?
@if您打印'$ content'到命令行,你本身是什麼e? –