我需要解析 SQL“CREATE TABLE”语句,以获取字段列表及其属性。
它主要是 MySQL 语法,应该是(像这个例子一样带有无法控制的嵌套括号:
CREATE TABLE 'tablename' (
field1 INT,
field2 VARCHAR(10),
field3 FLOAT NOT NULL DEFAULT 0,
PRIMARY KEY (field1, field2),
(CONSTRAINT fk FOREIGN KEY whatever)
) options;
我可以很容易地隔离列定义,但我想拆分定义。不能用逗号拆分,因为它们可以在嵌套的括号中。
我可以遍历字符串以计算开始和结束字符串定界符(引号等),计算开始和结束括号,这样我就可以检测到“第一级”逗号并对其进行拆分。
但我想知道是否有更有效的方法,例如使用正则表达式,但我还不够擅长确定某些正则表达式是否可以匹配如此复杂的语法......
最佳答案
关于c# - 如何正确解析 SQL CREATE TABLE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22531976/