我正在解析一个.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
如果第二个组将字符串与\'
匹配,我该如何处理这个问题?你知道吗
看来你必须解释引号中的任何转义。你知道吗
只需使用非贪婪的
.
(.+?
)例如:https://regex101.com/r/zV0lZ1/1
我建议用
'(([^']|\\')+)'
代替'([^']+)'
。你知道吗字符串用单引号括起来。它包含以下一个或多个实例:
相关问题 更多 >
编程相关推荐