java - 匹配器在文本中找不到任何类似于正则表达式模式的内容

标签 java regex

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

我有一个文本行:

insert into base (db) arg (any possible 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 = "insert into base (db) arg";

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

最佳答案

您需要转义括号,因为它们是 special characters在 RegEx 中(例如,它们用于创建 groups)。尝试一下

String UPDATE_REGEXP = "insert into base \\(db\\) arg \\(\\d*+\\)";

关于java - 匹配器在文本中找不到任何类似于正则表达式模式的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15773437/

相关文章:

ruby - 匹配词尾并且不是 "#"的正则表达式

javascript - 使用正则表达式替换 url 之间的值

java - JBoss中如何清除server.log?

java - 使用 OSHI lib 计算进程(作业)占用的内存

java - 修改 lambda 封闭范围内定义的数组

php - 在PHP中逐列读取rpt文件内容

php - 在给定手机号码的同一位置至少匹配 5 个号码位置

java - "Variable might not have been initialized"-- Java 中基于文本的冒险

java - 在 HashMap 中使用整数

javascript - 正则表达式匹配由\n分隔的字符串中的一系列数字(它只是一个字符串)