代码之家  ›  专栏  ›  技术社区  ›  Alex B.

用于定位未配对引号的正则表达式

  •  1
  • Alex B.  · 技术社区  · 15 年前

    我得到的CSV数据如下:

    1,poster,1,20# Recycled Bond,"4/0, colour master",16.5x23.4",trim
    ,files in colour attachments COH001 - 2556712,,FSC,,,
    8,"Tags (#1-5,7-9)",8,20# Recycled Bond,"4/0, colour master",7x3 ",trim
    1,Tags (#6),1,20# Recycled Bond,"4/0, colour master",7x3,trim
    ,files in colour attachments COH001 - 2556712,,FSC,,,
    

    我想找到未配对的引号,并在缺少一个引号的地方附加一个结束引号。例如,第1行将从 “4/0,彩色母版”,16.5x23.4“,饰件 “4/0,彩色母版”,16.5x23.4“,饰边 (注意前面额外的双引号。) ,修剪

    有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Antony Hatchkins Alexander Hamilton    15 年前

    我会这样做:

    s/(,[0-9.x ]*)",/\1'',/
    

    或者让它更具普遍性,

    s/((^|,)[0-9.x ]*)"(\s*(,|$))/\1''\3/