Dot-Net
替換整行會產生重複出現的替換文本
簡單的問題:為什麼
"x" -replace ".*", "y"產生“yy”?
"x" -replace ".*", "y"相當於
[Regex]::replace("x",".*","y")根據 MSDN,您看到的結果
yy基於其工作原理:在指定的輸入字元串中,用指定的替換字元串替換與指定正則表達式匹配的所有字元串。
http://msdn.microsoft.com/en-us/library/e7f5w83z.aspx
替換將找到與正則表達式匹配的字元串並將其替換為給定的替換。因此,將 x 替換為 y ,然後將空字元串替換為 y 並得到
yy.這可以通過執行來驗證
[Regex]::matches("x",".*")- 它給出兩個匹配項 - 一個用於空字元串,一個用於 x。就其他正則表達式引擎而言,這是由於
gor 全域標誌而發生的。這也可以在 Python 中進行如下驗證(只是為了表明這不僅限於 Powershell / .Net):
>>> re.findall(".*","x") ['x', '']