정규표현식 질문

cleol의 이미지

sql select 문에서 select 되는 녀석들을 캡쳐해주는 정규표현식이 필요한데 어렵네요...정규표현식으로 안될까요? sql 파서라도 있어야 하나? 예를 들어 다음과 같은 sql 질의가 있을때

select
	col1,
	ta.col2,
	tb.col3 as col4,
	(select
		col3
	from
		table3
	where
		col4 = col5) as kol1
from
	table1 ta,
	table2 tb,
	(select
		col4
	from
		table4
	where
		col6 = 1) tc
where
	ta.col1 = tb.col2 and
	ta.col1 = 100
order by
	ta.col1

$1, $2, $3 이 캡쳐된 결과라면

$1 = ta.col2
$2 = tb.col3 as col4
$3 = (select
col3
from
table3
where
col4 = col5) as kol1

을 주는 정규표현식이 가능할까요?

익명 사용자의 이미지

파서가 있어야 할 것으로 사료됩니다.

* sql이 context free grammar이며, regular expression으로는 이를 표현할 수 없을 것으로 보입니다.