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

Powershell 替换字符串中的第一个字符,powershell,Powershell,我有一个CSV文件,我想将第一个字符0替换为+46,但我无法按我所希望的那样工作 我有以下代码可以工作,但它可以处理所有零,而不仅仅是第一个: $csv = Import-Csv test.csv $csv | ForEach-Object { $_.mobile = $_.mobile.Replace("0", "+46") } $csv | Export-Csv -Encoding "UTF8" new-test.csv -NoTypeInformation 你知道如何只对字符串中

我有一个CSV文件,我想将第一个字符0替换为+46,但我无法按我所希望的那样工作

我有以下代码可以工作,但它可以处理所有零,而不仅仅是第一个:

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

你知道如何只对字符串中的第一个字符执行此操作吗?

这是因为
string.Replace()
将替换

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

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

“第一个字符是0”或“第一个字符,如果是0”?因为
+46
是瑞典的国家呼叫代码,看起来这是关于将电话号码从国内格式转换为国际格式的。@vonPryz这也是我的印象,因此问题是:)VonPryz关于转换成国际号码格式的说法是正确的。这部作品很棒,谢谢。正如你所看到的,这不是我通常做的,但我想你必须从某个地方开始