2017-01-02 152 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

这很好,所以谢谢你。正如你可以看到这不是我通常做的,但我想你必须从某个地方开始 –