Java匹配器错误

时间:2013-04-04 14:27:52

标签: regex

我的字符串:

null[00:14.04]I've /n[00:14.11]got /n[00:14.18]a /n[00:14.25]fee- /n[00:15.02]ling /n

我正在尝试获取[< --->]括号之间的所有数据。这是我的代码。

String find = "[(.*?)\\\\]";
Pattern patern = Pattern.compile(find);
Matcher matcher  = patern.matcher(intake);
     while(matcher.find()){
         i++;
         matcher.find(i);
         int start = matcher.start();
         int end = matcher.end();
         String group = matcher.group();
     }

第一个结果是:

start = 10
end = 11
group = "."

我想要的是(数着我的脑袋)

start = 4
end = 14
group = [00:14.04]

接下来是

start = 22
end = 32
group = [00:14.11]

等等

正确的模式是什么?

1 个答案:

答案 0 :(得分:1)

你正在使用错误的转义。使用此正则表达式:

String find = "\\[(.*?)\\]";

编辑:根据您的评论:

如果你想捕获方括号内的所有项目,只需像这样运行你的while循环:

while(matcher.find()) {
    String matched = matcher.group(1);
    System.out.printf("Matched Group: [%s]%n", matched);
}