2017-01-02 21 views
2

私は0になっている最初の文字を+46に置き換えたいCSVファイルを持っていますが、私が望むようにこの作業を行うことはできません。文字列内の最初の文字を置換します

I働き、次のコードを持っているが、それはすべてゼロで動作していないだけで最初の1:

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

任意のアイデアはどのようにのみ、文字列の最初の文字の上にこの作業を行うには?

+1

"最初の文字は0"または "最初の文字、* if *は0"ですか? –

+0

「+ 46」はスウェーデンの国のコーリングコードなので、電話番号を国内から国際フォーマットに変換するようです。 – vonPryz

+0

@vonPryzこれは私の印象でもありました。だから質問: –

答えて

4

all the occurrencesの代わりにString.Replace()が表示されます。

最初のものだけを置き換えるには、正規表現を使用します。行のアンカーの先頭、^を使用すると、置換は文字列の開始に制限されます。同様に、

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

への変換については正しいです。あなたが見ることができるように、これは私が通常行うことではありませんが、私はあなたがどこかで始まらなければならないと思います –

関連する問題