我需要解析SQL的“CREATE TABLE”语句,以获取字段列表及其属性。
它主要是MySQL语法,应该是这样的(带有不可控制的嵌套括号,如此例所示:
我可以轻松地分离列定义,但我想拆分这些定义。在嵌套的括号中,逗号无法进行拆分。
我可以迭代字符串以计算打开和关闭字符串定界符(引号等),计算打开和关闭括号,以便可以检测“第一级”逗号并在其上拆分。
但我想知道是否有更有效的方法,例如使用正则表达式,但我对它们不够熟练,无法确定某些正则表达式是否能匹配此类复杂语法...
它主要是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;
我可以轻松地分离列定义,但我想拆分这些定义。在嵌套的括号中,逗号无法进行拆分。
我可以迭代字符串以计算打开和关闭字符串定界符(引号等),计算打开和关闭括号,以便可以检测“第一级”逗号并在其上拆分。
但我想知道是否有更有效的方法,例如使用正则表达式,但我对它们不够熟练,无法确定某些正则表达式是否能匹配此类复杂语法...