我有一个字符串
698636235 | 2004-02-19 || UN |
713220614 | ||| 2009-10-07
这是我正在尝试加载到MySQL中的管道分隔文件(我知道....)的一部分。
我正在尝试使用正则表达式用\N
填充空字段值,以便MySQL插入null
。但是,如果有多个字段为空值,则会出现此问题。
我当前的正则表达式是/\|\|/
,它匹配双管道的一个实例。此正则表达式将在索引(0,1)处匹配一次。
正则表达式是否可以匹配|||
两次?一旦在索引(0,1)和一次在索引(1,2)?
如果不是,我只会写一个正确的循环函数。
答案 0 :(得分:3)
我建议使用环视:
(?<=^|\||\n)(?=\||$|\n)
它在垂直条与行/文本的开头/结尾(=空字段)之间找到垂直条之间的零宽度空间,或。
第一部分,正面后顾(?<=
会检查我们感兴趣的位置是否以文字开头^
,竖线|
或新线{开头} {1}}。
第二部分,即前瞻性\n
,确保其后跟垂直条,新行或文字结尾(?=
。
修改强>
根据评论,在行首添加了对空字段的支持。 (不得不检查,但从我可以看到ruby支持后视。原来如果有人需要它在JS:$
)