項目里用matcher.find()發現有匹配的,也為false。
解決辦法就是去掉^和$。
public static String replaceStr(String str){
//針對字符串處理
String reg = "[\\u4e00-\\u9fa5]{4}(:|:)([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))";
// String reg = "(:|:)";
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.find()+"");
StringBuilder sb = new StringBuilder();
//查找符合規則的子串
while(matcher.find()){
//獲取 字符串
sb.setLength(0);
sb.append(matcher.group());
System.out.println(sb.toString());
//獲取的字符串的首位置和末位置
System.out.println(matcher.start()+"--"+matcher.end());
str = str.replace(matcher.group(),"**"+matcher.group()+"**");
}
System.out.println(str);
return str;
}
