使用RegEx拆分SQL Select语句

时间:2012-01-06 07:52:31

标签: java regex

我想在带有Regex的SQL Select语句中找到整个列列表。

例如,

Select col1, col2,col3 from tab1;

必需

[1]: col1
[2]: col2
[3]: col3

这种正则表达式的一种方式

select.*from;

然后拆分字符串。还有其他更有效的方法吗?

由于

1 个答案:

答案 0 :(得分:1)

我会说你的版本是最有效的方式。

可以构建一个正则表达式,可以在一次运行中抓取所有这些,但它肯定不会像你正在做的那样快,而且它只能看到{{{ 1}}跟随,而不是它背后是否有from

select

总而言之,我会说你拥有的东西。也许让星号懒惰:

Pattern regex = Pattern.compile("\\w+(?=\\s*(?:,|\\bfrom\\b))(?=.*\\bfrom\\b)");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
    matchList.add(regexMatcher.group());
}