每次我需要使用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();
}
}
我也尝试过最简单的正则表达式:
String UPDATE_REGEXP =“insert into base(db)arg”;
但是这个测试总是失败。我的错在哪里?
答案 0 :(得分:5)
您需要转义括号,因为它们在RegEx中为special characters(例如,它们用于创建groups)。尝试
String UPDATE_REGEXP = "insert into base \\(db\\) arg \\(\\d*+\\)";