2015-04-14 27 views
3

在調試Powershell腳本時發現此問題。

PS C:\temp> "hello" -match $null 
True 

> "hello" -eq $null returns False 

爲什麼使用-match時,任何字符串會與$null

+1

大概是因爲'$ null'正則表達式匹配任何東西,因爲它與沒有匹配。同樣,您可以將任意數量的$ {null}插入到模式的中間,而不會影響其匹配,因爲它們只會擴展爲無。 –

回答

5

我相信這是因爲$ null被強制爲一個空字符串,因爲-match需要RHS(右手側)上的字符串模式。而一個空字符串將匹配任何東西。

+0

謝謝。是的檢查和 - 與任何空/空變量匹配是真。空字符串匹配任何東西,每天學習新的東西:-) – catta

+0

這必須是正確的,對於「hello」-match [NullString] :: Value'用'ArgumentNullException'爆炸。 –

相關問題