0

每次我需要使用正则表达式时,我都会遇到类似的问题。他们只是不适合我,我不知道我做错了什么。

我有一个文本行:

插入基(db)arg(任何可能的 int);

这样的行也可能在末尾包含注释。我需要的是找到这样的行。这是我尝试这样做的方法:

@Test
public void test() {
    String UPDATE_REGEXP = "insert into base (db) arg (\\d*+)";
    String sample = "insert into base (db) arg (100);";
    Pattern pattern = Pattern.compile(UPDATE_REGEXP);

    Matcher matcher = pattern.matcher(sample);

    if(matcher.find()) {
        System.out.println(matcher.group());
    } else {
        fail();
    }
}

我还尝试过最简单的正则表达式:

String UPDATE_REGEXP = "插入基础 (db) arg";

但是这个测试总是失败。我的错在哪里?

4

1 回答 1

5

您需要转义括号,因为它们是RegEx 中的特殊字符(例如,它们用于创建)。尝试

String UPDATE_REGEXP = "insert into base \\(db\\) arg \\(\\d*+\\)";
于 2013-04-02T20:12:41.517 回答