給定一個字符串,匹配在第一次出現單詞後出現的所有內容。這個詞不能出現在一對括號內的任何地方,但也可以是其他詞。例如:正則表達式不在括號內
SELECT
t1.col1,
(SELECT t2.col1 FROM table2 t2
WHERE t2.id IN(SELECT * FROM table5 WHERE id = t2.id)
) AS alias1,
t1.col2
----------
FROM
table1 t1,
(SELECT id FROM table3 t3 WHERE t3.id = t1.table3_id) t3,
table4 t4
我正在尋找一切虛線AFTER - 具體而言,一切字FROM
一號外觀不隨地一對括號
內如果贏了的正則表達式後出現」不,我會製作一個PHP語句來解析。我也很難過,那麼!我想要做到這一點,我將不得不用字符和括號來標記字符串?
不能用正則表達式來處理一般情況;那些無法計數,因此不能告訴你在一個開放括號之後它又被關閉了。儘管如此,我不知道sql是否支持正則表達式的擴展。 –
我會考慮製作一個PHP函數,在這方面也有難度! – rmirabelle
你可以這樣做:從第一個字母開始掃描FROM的字符串。爲嵌套深度保留一個計數器,初始化爲0.每當一個支架打開時,增加它;當括號關閉時,減少它(減1)。每當計數器!= 0時,只需掃描字符,直到計數器爲0而不檢查FROM。一旦你有第一次出現FROM,從那裏開始的子字符串。 –