我已经编写了一个RegExp来捕获SQL(JDBC)查询的所有参数和关联值。RegExp查找SQL字符串的IN值
我正在使用这个。
(?:\S+\s)?\S*"myOperatorHere\S*(?:\s\S+)?
所以,我可以赶上参数,如:Where c.value = 32
我能得到c.value
和32
它与所有的运营商运作良好,除了IN
我想赶上where c.value IN (3,4,5,6)
但有了这个表达式,我得到了(3,
作为一种价值,而不是(3,4,5,6)
例如,如果我有查询:
SELECT C.NAME, C.FIRSTNAME FROM CUSTOMER C, PROSPECT P WHERE C.ID = 32 AND C.TRUC = 28 AND P.ID < 12 AND P.A IN (2, 3, 4)
我想获得C.ID = 32, C.TRUC = 28, P.ID < 12, P.A IN (2, 3, 4)
能否请你帮我管理这个?如果需要,我可以使用两个表达式。
由于几乎工作。但不是用我已经添加到问题描述 – Gilles
的SQL示例。这很棒。非常感谢你 – Gilles