我想在带有Regex的SQL Select语句中找到整个列列表。
例如,
Select col1, col2,col3 from tab1;
必需
[1]: col1
[2]: col2
[3]: col3
这种正则表达式的一种方式
select.*from;
然后拆分字符串。还有其他更有效的方法吗?
由于
答案 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());
}