gpt4 book ai didi

regex - Powershell正则表达式删除逗号但不删除分隔符

转载 作者:行者123 更新时间:2023-12-02 13:14:44 24 4
gpt4 key购买 nike

我将一个分隔的 CSV 引入 PowerShell,以删除换行符,下面的代码可以工作,但我发现我还需要删除额外的逗号,但不确定如何格式化正则表达式。

(Get-Content -Path $fullpath -Raw) -replace '(?<!\x0d)\x0a'," " | out-file $fullpath

我输入的 CSV 是:

"field1","field2","field3","fred,mary,john,brian","field5"

所以我想保留 "," (包括引号),但单独删除任何其他逗号。

所以我最终会得到:

"field1","field2","field3","fred mary john brian","field5"

最佳答案

这样就可以了。

(Get-Content -Path $fullpath -Raw) -replace '(?<!"),|,(?!")',' ' | out-file $fullpath

它只会匹配前面没有引号或后面没有引号的逗号。
这对于除引号括起来的逗号之外的所有逗号都是正确的: ","

要仅删除特定字段的逗号,您可以使用带有 header 的 Import-Csv。

$csvin = Import-Csv -Path $fullpath -Header f1,f2,f3,f4,f5
$csvin |%{$_.f4=$_.f4.replace(',',' ')}
$csvin |ConvertTo-Csv -NoTypeInformation |Select-Object -Skip 1 |Set-Content -Path $fullpath

关于regex - Powershell正则表达式删除逗号但不删除分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38802506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com