2015-05-29 267 views
2

我的腳本應查找逗號分隔的3位數版本號(例如1.2.3)
並用新版本號替換它。同一個文件有另外一個不符合這個正則表達式的字符串,腳本仍然會改變它。Powershell正則表達式替換模式

Samplefile.txt

"[email protected]" 
    "e2bf8da9-275a-484d-95a6-7e6b8c0ce0ca" 

從腳本替換命令部分:

-replace "\d.\d.\d","2.2.2" 

我希望它給這樣的輸出,

"[email protected]" 
    "e2bf8da9-275a-484d-95a6-7e6b8c0ce0ca" # This string not changed 

但它改變了第二個字符串我也不打算

e2bf8da2.2.2a-484d-92.2.2e2.2.2ce0ca 

我是否正確使用了正則表達式?有人可以幫忙嗎?

+0

的_ 「點」 在一個正則表達式_(又名_period_'.')是匹配任何元字符,因此'\ d。\ d。\ d'匹配「一個數字後跟任何字符後跟一個數字,後跟任何一個數字後跟一個數字」。看到卡斯拉的答案是讓這個點成爲一個普通的點。 –

+0

謝謝你詳細解釋。 – VRK

回答

1

你需要躲避點在您正則表達式:

"\d\.\d\.\d" 

Demo

+1

謝謝。有效。 – VRK

+0

@VRK不客氣! – Kasramvd