Matcher在与regexp模式类似的文本中找不到任何内容

Dra*_*gon 0 java regex

每次我需要使用regexp时,我都会遇到类似的问题.他们只是不为我工作,我不知道我做错了什么.

我有一个文字行:

插入base(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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

String UPDATE_REGEXP ="insert into base(db)arg";

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

Psh*_*emo 5

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

String UPDATE_REGEXP = "insert into base \\(db\\) arg \\(\\d*+\\)";
Run Code Online (Sandbox Code Playgroud)