2015-09-28 62 views
0

我想構建一個正則表達式來過濾掉SQL語句的某些部分。我目前正在與合作聲明:需要幫助建立正則表達式

CREATE TABLE tblname ( 
    column Nr PRIMARY KEY, 
    column2 TEXT DEFAULT 'foo', 
    column3 TEXT DEFAULT 'foo,bar' 
) 

我想提取從語句中的列定義,像這樣:

column Nr PRIMARY KEY 
    column2 TEXT DEFAULT 'foo' 
    column3 TEXT DEFAULT 'foo,bar' 

我有什麼至今(JavaScript)的去除CREATE部分和最後支架:

sql.replace(/^[\w\s]+\(\s+/, "").replace(/\s+\)$/, ""); 

我不能split()在逗號ocurrences字符串,因爲這是一個默認值。

有什麼建議嗎?

+0

不能拆分的'('和從第二陣列項目中刪除最後一個字符? – npinti

+2

正則表達式是不是要走的路。你需要一個詞法分析器/分析器和AST。 – duffymo

+0

如果列的定義總是在分隔線上,你可以用',\ s * [\ r \ n]'分割。 – sp00m

回答

0

在這裏你去

sql.replace(/^([\w\s]*\()/im, '').replace(/(\)[\w\s]*)$/im, '')