在調試Powershell腳本時發現此問題。
PS C:\temp> "hello" -match $null
True
但
> "hello" -eq $null returns False
爲什麼使用-match
時,任何字符串會與$null
?
在調試Powershell腳本時發現此問題。
PS C:\temp> "hello" -match $null
True
但
> "hello" -eq $null returns False
爲什麼使用-match
時,任何字符串會與$null
?
我相信這是因爲$ null被強制爲一個空字符串,因爲-match
需要RHS(右手側)上的字符串模式。而一個空字符串將匹配任何東西。
謝謝。是的檢查和 - 與任何空/空變量匹配是真。空字符串匹配任何東西,每天學習新的東西:-) – catta
這必須是正確的,對於「hello」-match [NullString] :: Value'用'ArgumentNullException'爆炸。 –
大概是因爲'$ null'正則表達式匹配任何東西,因爲它與沒有匹配。同樣,您可以將任意數量的$ {null}插入到模式的中間,而不會影響其匹配,因爲它們只會擴展爲無。 –