code: public static String replaceAll(CharSequence str, Pattern pattern, Func1<Matcher, String> replaceFun){
  		if (StrUtil.isEmpty(str)) {
  			return StrUtil.str(str);
  		}
  
  		final Matcher matcher = pattern.matcher(str);
  		final StringBuffer buffer = new StringBuffer();
  		while (matcher.find()) {
  			try {
  				matcher.appendReplacement(buffer, replaceFun.call(matcher));
  			} catch (Exception e) {
  				throw new UtilException(e);
  			}
  		}
  		matcher.appendTail(buffer);
  		return buffer.toString();
  	}
docs: 替换所有正则匹配的文本，并使用自定义函数决定如何替换
  
  @param str 要替换的字符串
  @param pattern 用于匹配的正则式
  @param replaceFun 决定如何替换的函数,可能被多次调用（当有多个匹配时）
  @return 替换后的字符串
  @since 4.2.2