2017-08-04 33 views
1

爲什麼下面產生的兩場比賽,因此"xx"作爲輸出:爲什麼有兩個與。*正則表達式匹配?

"Hello" -Replace '.*','x' 

雖然這只是生成一個匹配,因此只是在輸出"x"

"Hello" -Replace '^.*','x' 

我試圖理解正則表達式的細微差別導致兩場比賽的第一場?

你可以把同進https://regex101.com,它也報告兩場比賽與第一場比賽是"Hello"和第二場比賽是""

回答

5

這是因爲*量詞匹配或多個字符。在這種情況下,它會匹配整個單詞Hello,然後匹配它後面的空字符串。

使用.+,它會至少匹配一個字符。

當您使用^.*(查看字符串的開頭)時,它只有一個匹配項,因爲它不能匹配空字符串,因爲起始字符中有一個H字符。

+1

您也可以將其固定,'^。*' – briantist

+2

或者您可以簡單地取出'g'標誌 –

相關問題