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:这将正确匹配方括号内的字符串,并将生成您所期望的准确的开始、结束和组值。很抱歉,您是对的,我在循环中犯了一个错误,重复了我的错误。谢谢你。