问题描述
第一个是[#1]然后每个是[#2]、[#3]、[#4]、[#5]、[#6]怎么匹配这样的数字符串啊[#]这些都是定了的,数字不定 问题补充:能不能再写一个例子比如说String str = "badfdsfdsafsadf[#1],sfdsafsdfasdf[#2],skdf;sakfdjaksfdj"1.判断里面有多少个这样匹配的2.能匹配的换成指定字符串内容
解决方案
让我想到了万恶的面试官。比如说String str = "badfdsfdsafsadf[#1],sfdsafsdfasdf[#2],skdf;sakfdjaksfdj" 1.判断里面有多少个这样匹配的 2.能匹配的换成指定字符串内容\[#(\d+)\] 1.groupCount 获取符合规则的总数2.replaceAll("\[#\d+\]","you want");
解决方案二:
public static void main(String[] args) {String str = "badfdsfdsafsadf[#1],sfdsafsdfasdf[#2],skdf;sakfdjaksfdj" ; Matcher matcher = Pattern.compile("\[#(\d+)\]").matcher(str);StringBuffer sb = new StringBuffer(); while(matcher.find()){matcher.appendReplacement(sb, "ReplaceStr"); }matcher.appendTail(sb); System.out.println(sb.toString());}
解决方案三:
\[#(\d+)\] group获取即可
解决方案四:
"\[#[1-9]\]"