开发者社区> 问答> 正文

java 这样的正则表达式怎么写:报错

如下格式的字符串:

【中文1【中文2】中文3 中文4【中文5】】 //符号为中文符号【和】

//嵌套层次为2

要获取的结果应该是:所有【】之间的内容

中文1|中文2|中文3 中文4|中文5

展开
收起
kun坤 2020-06-09 23:28:06 687 0
1 条回答
写回答
取消 提交回答
  • 我觉得楼主的意思是嵌套的层数不限定为2层,那需要动态表达式才行######好吧 大概是这么个意思 不过最多就2层吧 也可能只有1层或者没有的说######

    java.util.regex.Pattern pattern= Pattern.compile("【([\u4e00-\u9fa5|\w]+)【([\u4e00-\u9fa5|\w]+)】([\u4e00-\u9fa5|\w]+)\s([\u4e00-\u9fa5|\w]+)【([\u4e00-\u9fa5|\w]+)】】"); Matcher matcher = pattern.matcher("【中文1【中文2】中文3 中文4【中文5】】"); if(matcher.matches()){ for(int count=1;count<=matcher.groupCount();count++){ System.out.println(count+":"+matcher.group(count)); } }
    ######手一抖 点选最佳答案选错了 不好意思 囧 @红薯 果断来个可撤销啊!######不过还是辛苦了哈:)######嗯结果大部分都对了 有一小点不符合哈 应该是“中文3 中文4”而不是“中文3” “中文4”

    2020-06-09 23:28:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载