每次我需要使用正则表达式时,我都会遇到类似的问题。它们只是不适合我,我不知道我做错了什么。
我有一个文本行:
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/