我有一个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
任何想法如何只对字符串中的第一个字符起作用?
答案 0 :(得分:6)
当String.Replace()
将取代all the occurrences时会发生这种情况。
为了仅替换第一个,请使用正则表达式。通过使用行锚^
的开头,替换仅限于字符串的开头。像这样,
$_.mobile = $_.mobile -replace "^0", "+46"