替换字符串中的第一个字符

时间:2017-01-02 12:32:38

标签: powershell

我有一个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 :(得分:6)

String.Replace()将取代all the occurrences时会发生这种情况。

为了仅替换第一个,请使用正则表达式。通过使用行锚^的开头,替换仅限于字符串的开头。像这样,

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