首页 > 向各位请教,java中利用正则表达式截取带有嵌套方括号的字符串,截取结果无论嵌套多少层始终要最里面的方括号的内容,感谢!

向各位请教,java中利用正则表达式截取带有嵌套方括号的字符串,截取结果无论嵌套多少层始终要最里面的方括号的内容,感谢!

请教大家个问题,关于java中利用正则截取字符串的问题.
示例字符串如下(字符串中嵌套的括号数量不一定):
null[null[请求服务异常]]
结果想要:[请求服务异常]
被这个问题困扰了一下午,网上相关的文章也搜了,文档也查了,最终还是没能解决...
如果哪位有时间的话,还请您帮忙指点指点,感谢!!!感谢!!!


\[([^\[\]]+)\]

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches {
    public static void main( String args[] ){
        String line = "null[null[请求服务异常]]";
        String pattern = "\\[([^\\[\\]]+)\\]";
        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(line);
        if (m.find()) {
             System.out.println(m.group(0));
             System.out.println(m.group(1));
        }
    }
}
【热门文章】
【热门文章】