2017-01-02 153 views
2

我有一個CSV文件,我想用+46替換0中的第一個字符,但無法按照我的意願進行此項工作。替換字符串中的第一個字符

我有下面的代碼的作品,但它適用於所有零,而不是隻有第一個:

$csv = Import-Csv test.csv 
$csv | ForEach-Object { 
    $_.mobile = $_.mobile.Replace("0", "+46") 
} 
$csv | Export-Csv -Encoding "UTF8" new-test.csv -NoTypeInformation 

任何想法如何使僅在字符串中的第一個字符這項工作?

+1

「第一個字符是0」還是「第一個字符,*如果它是0」? –

+0

由於'+ 46'是瑞典的國家電話代碼,它看起來像是將電話號碼從國內轉換爲國際格式。 – vonPryz

+0

@vonPryz這也是我的印象,因此問題:) –

回答

4

發生這種情況String.Replace()將取代all the occurrences

爲了只替換第一個,請使用正則表達式。通過使用行開頭的錨點,^,替換被限制爲字符串的開始。像這樣,

$_.mobile = $_.mobile -replace "^0", "+46" 
+0

這很好,所以謝謝你。正如你可以看到這不是我通常做的,但我想你必須從某個地方開始 –