【问题标题】:Remove <space><comma> but not <space><space><comma>删除 <space><comma> 但不删除 <space><space><comma>
【发布时间】:2015-08-16 15:08:03
【问题描述】:

我有一个 CSV 文件,其中包含未封装的文本字符串,其中一些包含逗号。这当然会抛出 CSV 解析器。

我的 CSV 具有以下模式:

  • 没有值的列将包含 2 个空格
  • 具有值的列看起来像&lt;comma&gt;&lt;value&gt;&lt;comma&gt;,值和逗号之间没有空格。

我需要删除的所有错误逗号(包含在文本字符串中)前面或后面都有一个空格。示例:

<somevalue,Check this out, I think you'll like it.,<somevalue>

我需要使用正则表达式将 &lt;space&gt;&lt;comma&gt; 替换为 &lt;space&gt;&lt;hyphen&gt;。但我不能只搜索逗号>,因为它会捕获所有有效实例。

【问题讨论】:

    标签: regex string powershell csv


    【解决方案1】:

    你可以使用以下来匹配:

    (?<![ ])[ ],
    

    并替换为''(空字符串)

    【讨论】:

    • 为了清楚起见,我会使用[ ] 而不是` `...它适用于RegexOption.IgnoreWhitespace
    【解决方案2】:

    另一种选择是匹配非空格,后跟空格和逗号并替换为非空格:

    ... -replace '(^|[^ ]) ,', '$1'
    

    【讨论】:

      猜你喜欢
      • 2022-12-26
      • 2015-03-19
      • 1970-01-01
      • 2016-06-11
      • 2020-08-20
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      相关资源
      最近更新 更多