这有点复杂。因此示例可能会有所帮助
我只想从以下类型的字符串中匹配/分组值
SELECT hello,world from tableName where id = 'hello';
而不是
SELECT hello,world FROM tableName where id='hello' and blah='jjk';
SELECT hello from tableName where blah='jjk' and id='hello';
如您所见,我只想匹配where id = 'hello'
是唯一存在的where子句。
我想分组以获取columnNames,tableName和id;
这是我构建的regex,但可以满足以上所有条件。
注意:id的值是固定长度。也就是说,它始终是5个字符。
答案 0 :(得分:1)
这个怎么样?似乎可以满足您的要求。
SELECT\s+(.*)\s+FROM\s+(.*)[\s]+?where\s+id\s*=\s*('[a-z]{5}')\s*;$
Regex101与某些测试的链接:https://regex101.com/r/anRIrL/3/tests