この質問は以前に依頼されましたが、私は解決策をpowershellで解決しようとしましたが、目的の結果が得られません。カンマでカンマを無視してダブルクォートでカンマで区切る方法
$line = '1,2,"N",09/04/13,"P09042013ZSD(1,0)","ZSD"'
[string[]] $splitColumns = $line.Split('(,)(?=(?:[^"]|"[^"]*")*$)', [StringSplitOptions]'RemoveEmptyEntries')
私はループ分割値けれども、私は
1
2
"N"
09/04/13
"P09042013ZSD(1,0)"
"ZSD"
を期待していしかし、私は設定ExplicitCaptureでhttp://regexhero.net/tester/(スプリット)を使用して、正規表現をテストして、それを返す
1
2
N
09/04/13
P09042013ZSD
1
0
ZSD
を取得しています望ましい結果。
作業溶液
$RegexOptions = [System.Text.RegularExpressions.RegexOptions]
$csvSplit = '(,)(?=(?:[^"]|"[^"]*")*$)'
$splitColumns = [regex]::Split("StringHere", $csvSplit, $RegexOptions::ExplicitCapture)
することはでき単に利用するだけ破を:あなたはこのようにそれを行うことができます.NET
PowerShellの
-split
使用して分割テキストため
regex
を受け入れます&exploadそのために... –私はそれらがcsvファイルかそれからの細胞かと思いますか?私はむしろ、ソースファイル内の区切り文字として ';'のような未使用の文字を持つことを確認したいと思います。 – Simon
ソースファイルには触れません。 – David