如何在python中使用正则表达式将字符串拆分为&引用;

如何在python中使用正则表达式将字符串拆分为&引用;,python,regex,Python,Regex,这是sql字符串,我想用“,”来拆分它,但不是用datatime中的“,”来拆分它。例如,如果字符串为: sub_sql = """(14,datetime.datetime(2013, 7, 22, 10, 40, 22),NULL,'Logical reads','50','ratio','y','Oracle','recommand')""" 预期结果是一个列表:[14,“datetime.datetime(2013 7,22,10,40,22)”,“NULL”,“逻辑读取”,“50”,

这是sql字符串,我想用“,”来拆分它,但不是用datatime中的“,”来拆分它。例如,如果字符串为:

sub_sql = """(14,datetime.datetime(2013, 7, 22, 10, 40, 22),NULL,'Logical reads','50','ratio','y','Oracle','recommand')"""
预期结果是一个列表:
[14,“datetime.datetime(2013 7,22,10,40,22)”,“NULL”,“逻辑读取”,“50”,“比率”,“y”,“Oracle”,“推荐”]


如何在python正则表达式中使用简单的方法执行此操作?

如果可以确保datatime中的逗号后面有一个空格,而其他逗号后面没有空格,则以下正则表达式将起作用:

import re
sub_sql = """(14,datetime.datetime(2013, 7, 22, 10, 40, 22),NULL,'Logical reads','50','ratio','y','Oracle','recommand')"""
sub_sql = sub_sql[1:-1] #remove the first and last bracket
re.split(",(?! )", sub_sql)

为什么不像这样使用
eval
eval(sub_-sql,{'NULL':None,'datetime':datetime})。@BhargavRao:
ast.literal\u eval
在这里不起作用,至少不能直接起作用,因为这不是一个表示Python文字的字符串。@DSM哦,是的。我没有正确地看到字符串。很抱歉,对于一般情况,不能使用Python re-如果您有任意嵌套的括号。无论如何,一个示例字符串离en还差得远通过导出正则表达式。。