[英]Split SQL Select Statement with RegEx
我想在使用Regex的SQL Select语句中找到列的整个列表。
例如,
Select col1, col2,col3 from tab1;
需要
[1]: col1
[2]: col2
[3]: col3
一种方法是此正则表达式
select.*from;
然后分割字符串。 还有其他更有效的方法吗?
谢谢
我想说您的版本是最有效的方法。
您可以构建,抓住所有那些在单次运行正则表达式,但它肯定不会是一样快,你在做什么,并且只期待未来看到一个from
以下,而不是背后是否有一个select
背后:
Pattern regex = Pattern.compile("\\w+(?=\\s*(?:,|\\bfrom\\b))(?=.*\\bfrom\\b)");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
matchList.add(regexMatcher.group());
}
总而言之,我想说的就是您所拥有的。 也许使星号变得懒惰:
select.*?from
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.