【问题标题】:Regex on SQL using Java使用 Java 的 SQL 正则表达式
【发布时间】:2016-07-18 19:05:35
【问题描述】:

我只有 SQL 插入语句。我想做的是从Insert 到结尾的分号。如:

Insert blah INTO blah VAULES(blah);

我需要捕捉所有这些。

我使用这个^([^;]*) 作为我的正则表达式。

这是我的 Java 代码:

private String processFile(String data) {
    StringBuilder retVal = new StringBuilder();
    Pattern pattern = Pattern.compile(REGEX);
    Matcher matcher = pattern.matcher(data);
    while (matcher.find()) {
        String match = matcher.group(1);
        match = match.replaceAll("\n", "");
        retVal.append(match).append(";\n");
    }
    return retVal.toString();
}

但它似乎只捕获第一次出现。我怎样才能捕捉到所有这些?

【问题讨论】:

    标签: java sql regex


    【解决方案1】:

    您的正则表达式包含字符串匹配器 ^ 的开头,它只能匹配一次。

    如果您想匹配多个条目,请将字符串匹配器的开头替换为重复的内容(如 Insert 关键字):

    Insert([^;]*)

    【讨论】:

    • 酷,做到了。谢谢
    猜你喜欢
    • 2015-03-26
    • 2019-08-02
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2013-01-18
    • 2012-01-16
    • 1970-01-01
    相关资源
    最近更新 更多