繁体   English   中英

使用RegEx分割SQL Select陈述式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM