Regex 删除<;空间>&书信电报;逗号>;但不是<;空间>&书信电报;空间>&书信电报;逗号>;
我有一个CSV文件,其中包含未封装的文本字符串,有些包含逗号。这当然抛弃了CSV解析器 我的CSV具有以下模式:Regex 删除<;空间>&书信电报;逗号>;但不是<;空间>&书信电报;空间>&书信电报;逗号>;,regex,string,powershell,csv,Regex,String,Powershell,Csv,我有一个CSV文件,其中包含未封装的文本字符串,有些包含逗号。这当然抛弃了CSV解析器 我的CSV具有以下模式: 没有值的列将包含2个空格 带有值的列看起来像,值和逗号之间没有空格 我需要删除的所有错误逗号(包含在文本字符串中)前面或后面都有一个空格。例如: ,因为这将捕获所有有效实例。您可以使用以下内容进行匹配: (?<![ ])[ ], (? 并替换为”(空字符串)另一个选项是匹配非空格,后跟空格和逗号,并替换为非空格: ... -replace '(^|[^ ]) ,', '$
- 没有值的列将包含2个空格
- 带有值的列看起来像
,值和逗号之间没有空格
,因为这将捕获所有有效实例。您可以使用以下内容进行匹配:
(?<![ ])[ ],
(?
并替换为”
(空字符串)另一个选项是匹配非空格,后跟空格和逗号,并替换为非空格:
... -replace '(^|[^ ]) ,', '$1'
我会使用[]
而不是``只是为了清楚…它与RegexOption.IgnoreWhitespace一起工作