【问题标题】:How to use REGEX to replace just commas outside quotes? [closed]如何使用正则表达式替换引号外的逗号? [关闭]
【发布时间】:2013-05-03 22:09:03
【问题描述】:

我有遵循以下示例的 .CSV 文件

22645.30003,2013 Mar 31,4:00:00,5:59:59,"Twilight Saga, The: Breaking Dawn - Part 2","Condon, Bill",,,4

我需要用符号 \ 替换逗号作为列分隔符,保留引号中包含的字符串内的所有逗号,并打算在 Notepad++ 中的简单查找和替换中使用它。

【问题讨论】:

标签: regex csv


【解决方案1】:

你可以试试这个

search :  ,("[^"]*")?

replace : \\\1

(已在 6.3.2 版本上测试并运行)

【讨论】:

  • @Cyborgx37:你在notepad++上测试过吗?
  • 我没有 Notepad++ - 但我最初的评论不正确。如果 Notepad++ 跳过替换的文本(不是正常行为),那么这实际上可能有效。
  • 一旦匹配了,就不能再匹配了,这是正常现象
  • 注意:这仅适用于较新版本的 Notepad++。早期版本不支持某些运算符,包括or?
  • @Alan: 对,老版本5.8.3好像什么都认不出来
【解决方案2】:

按照正则表达式

(,)(?=(?:[^"]|"[^"]*")*$)

匹配引号外的所有逗号。

ReFiddle

【讨论】:

  • 我今天第二次看到这个链接,这次也没有用。
  • @melwil 我刚刚用谷歌搜索了“在线正则表达式”。它对我有用。
  • 正则表达式并不完全相同。 Notepad++ 使用 POSIX。我不相信 POSIX 表示法支持前瞻等。见regular-expressions.info/refflavors.html
猜你喜欢
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
  • 2011-09-17
  • 2016-11-13
  • 2020-10-10
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
相关资源
最近更新 更多