正则表达式内组

康威尔

我有一个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");

第四个元素是“ sub-csv”,其中条目数量未知。但始终采用这种格式(没有“”)

理想情况下,我想使用regex在notepad ++中执行此操作,如果不可能的话,我将必须编写脚本。

我认为首先我需要这样做:

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

看起来像这样:

122545; bmwx3;新;红色

122545; bmwx3;新;黑色

122545; bmwx3;全新;白色

122545; bmwx3;新;粉红色

我的问题是我不知道匹配-csv。甚至有可能在纯正则表达式中执行此操作(无需编程)?

罗宾

如果122545;bmwx3;new;零件固定

分三步:

  • 前往red,black,white,pink#LIMIT#122545;bmwx3;new;:替换(.*;)([^;]*)\2#LIMIT#\1

  • 制造122545;bmwx3;new;red刺痛:更换

    (\w+)(?:,|(?=#LIMIT#))(?=.*#LIMIT#(.*))
    

    \2\1\n(请参阅演示

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


如果122545;bmwx3;new;零件固定

@hjpotter的想法似乎很酷,您刚刚被替换,

\n122545;bmwx3;new;

还剩啥

更换

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

INSERT INTO myTable VALUES ("\1", "\2", "\3", "\4")

你很好!

本文收集自互联网,转载请注明来源。

如有侵权,请联系debugc[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章