我正在接收带有嵌入逗号的SQLDDL字符串以及values.e.x
org_id bigint,merc_name varchar(50),deposit_day date null,amount decimal(18,3),bank_name varchar(128)
这些SQL字符串值是从我们从其他应用程序接收的DDL文件中提取出来的(因此,我们目前无法要求其他团队从其末端修复它以转义嵌入的逗号)。我们希望输出为:
['org_id bigint', 'merc_name varchar(50)', 'deposit_day date null', 'amount decimal(18,3)', 'bank_name varchar(128)']
我尝试了csv模块,但是仍然没有逃逸值中嵌入的逗号。正则表达式是唯一的方法吗?你知道吗
标记并使用最简单的状态机;这不会处理嵌套的括号,但对于这种情况已经足够了:
这会将您的输入解析为标记(单词字符、或逗号、括号和空格),然后生成完整的列声明:
您可以扩展解析器来处理错误条件(
current
在有逗号时为空,或者在找到结束符)
之前用完标记,等等)。它还可以很容易地扩展到处理带引号的名称(也可以包含括号和逗号!),再次添加一个嵌套循环,就像处理括号一样。你知道吗使用正则表达式:
相关问题 更多 >
编程相关推荐