【发布时间】:2015-06-26 19:33:00
【问题描述】:
我正在解析一个 .SQL 文件并尝试将其写入 Mongodb。
我用了这个正则表达式,
\((\d+),'([^']+)'(?:,(\d+))(?:,(\d+))(?:,(\d+))\)
,它适用于大多数情况。
(431532,'Fluorescent_cheese_dyes',0,0,0),(431533,'Christian_Rock_albums',0,0,0),
(431534,'Variety_radio_stations',0,0,0),(431535,'Dean\'s_list',0,0,0),
但对于最后一个关于哪里有\' 的情况并没有,因为我使用'([^']+)' 来匹配字符串。当我将'([^']+)' 更改为'((?:(?:\')|[^'])+)' 时,它将匹配一个实例而不是4 个实例中的所有案例。组将是这样的:
1. 431532
2. Fluorescent_cheese_dyes',0,0,0),(431533,'Christian_Rock_albums',0,0,0),(431534,'Variety_radio_stations',0,0,0),(431535,'Dean\'s_list
3. 0
4. 0
5. 0
如果第二组将字符串与\' 匹配,我该如何处理?
【问题讨论】:
-
你在解析什么?我避免使用正则表达式进行解析(如果可能...)
-
我正在解析一个 sql 转储。
-
我不确定格式是什么,但似乎用括号括起来可以创建一个元组列表,你可以
eval:-)