Regex 群内正则表达式

Regex 群内正则表达式,regex,notepad++,Regex,Notepad++,我有一个csv文件需要导入数据库 样本输入: 122545;bmwx3;新的;红,黑,白,粉红 我希望最终输出如下: INSERT INTO myTable VALUES ("122545", "bmwx3", "new", "red"); INSERT INTO myTable VALUES ("122545", "bmwx3", "new", "

我有一个csv文件需要导入数据库

样本输入:

122545;bmwx3;新的;红,黑,白,粉红

我希望最终输出如下:

INSERT INTO myTable VALUES ("122545", "bmwx3", "new", "red");
INSERT INTO myTable VALUES ("122545", "bmwx3", "new", "black");
INSERT INTO myTable VALUES ("122545", "bmwx3", "new", "white");
INSERT INTO myTable VALUES ("122545", "bmwx3", "new", "pink");
第四个元素是一个“子csv”,具有未知数量的条目。但始终采用该格式(否)

理想情况下,我希望使用正则表达式在记事本++中完成这项工作,如果不可能,我将不得不编写一个脚本

我认为首先我需要做到:

122545;bmwx3;新;红、黑、白、粉红

像这样:

INSERT INTO myTable VALUES ("122545", "bmwx3", "new", "red");
INSERT INTO myTable VALUES ("122545", "bmwx3", "new", "black");
INSERT INTO myTable VALUES ("122545", "bmwx3", "new", "white");
INSERT INTO myTable VALUES ("122545", "bmwx3", "new", "pink");
122545;bmwx3;新;红色

122545;bmwx3;新;黑色

122545;bmwx3;新;白色

122545;bmwx3;新;粉红色


我的问题是,我不知道如何匹配子csv。是否可以在纯正则表达式(无需编程)中进行匹配?

当然不是最简单的方法,但它可以工作:

查找内容:
^([^,]+;)(.+),([^,]+)$

替换为:
$1$2\n$1$3


如果
122545;bmwx3;new;
部件未固定,请根据需要多次单击
Replace all

分三个步骤:

  • 进入
    红、黑、白、粉限制122545;bmwx3;新;
    :将
    (.*)([^;]*)
    替换为
    \2\LIMIT\1

  • 创建
    122545;bmwx3;新;红色
    sting:replace

    (\w+)(?:,|(?=#LIMIT#))(?=.*#LIMIT#(.*))
    
    使用
    \2\1\n
    (请参阅)

  • 删除
    #LIMIT#…
    行:用空字符串替换
    ^#LIMIT#。*



如果
122545;bmwx3;new;
零件已修复

@hjpotter的想法似乎很酷,你只是一个新手,可以用

\n122545;bmwx3;new;

剩下什么

替换

^(\w*);(\w*);(\w*);(\w*)$


你可以用
122545;bmwx3;new;替换所有的
颜色的数量是否固定?