Regex Java匹配器错误

Regex Java匹配器错误,regex,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.

我的字符串:

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 = 22
end = 32
group = [00:14.11]
等等


正确的模式是什么?

您使用了错误的转义。使用此正则表达式:

String find = "\\[(.*?)\\]";
编辑:根据您的评论:

如果要捕获方括号内的所有项目,只需按如下方式运行while循环:

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

你用错了。使用此正则表达式:

String find = "\\[(.*?)\\]";
编辑:根据您的评论:

如果要捕获方括号内的所有项目,只需按如下方式运行while循环:

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

所以您希望它匹配并返回
[]
括号内的所有内容,那么所有的时间戳是什么?您在“想要”中所说的并不清楚。所以您希望它匹配并返回
[]
括号内的所有内容,那么所有的时间戳呢?你在“想要”中所说的不清楚。我希望匹配括号内的所有项目。很抱歉,让我更新我的问题。@Akyl:这将正确匹配方括号内的字符串,并将生成您所期望的准确的开始、结束和组值。很抱歉,您是对的,我在循环中犯了一个错误,重复了我的错误。顺便说一句,谢谢。我希望能匹配括号内的所有项目。很抱歉,让我更新我的问题。@Akyl:这将正确匹配方括号内的字符串,并将生成您所期望的准确的开始、结束和组值。很抱歉,您是对的,我在循环中犯了一个错误,重复了我的错误。谢谢你。