Câu hỏi này đã được hỏi trước nhưng tôi đã cố gắng giải pháp trong powershell nhưng không nhận được kết quả mong muốn.Cách tách chuỗi bằng dấu phẩy bỏ dấu phẩy trong dấu ngoặc kép
$line = '1,2,"N",09/04/13,"P09042013ZSD(1,0)","ZSD"'
[string[]] $splitColumns = $line.Split('(,)(?=(?:[^"]|"[^"]*")*$)', [StringSplitOptions]'RemoveEmptyEntries')
Khi tôi vòng mặc dù các giá trị chia Tôi hy vọng
1
2
"N"
09/04/13
"P09042013ZSD(1,0)"
"ZSD"
Nhưng am getting
1
2
N
09/04/13
P09042013ZSD
1
0
ZSD
Tôi đã thử nghiệm regex sử dụng http://regexhero.net/tester/ (Split) với ExplicitCapture thiết lập và nó sẽ trả về các kết quả mong muốn.
giải pháp làm việc
$RegexOptions = [System.Text.RegularExpressions.RegexOptions]
$csvSplit = '(,)(?=(?:[^"]|"[^"]*")*$)'
$splitColumns = [regex]::Split("StringHere", $csvSplit, $RegexOptions::ExplicitCapture)
Bạn có thể chỉ đơn giản là sử dụng Chỉ cần Thu nhỏ & expload cho rằng ... –
Tôi đoán đó là những tế bào từ một tập tin csv hay như vậy? Tôi muốn đảm bảo có một ký tự không được sử dụng như ';' cho dấu phân cách trong tệp nguồn. – Simon
Không thể chạm vào tệp nguồn. – David