java 正则表达式实现的字符串替换

  /**
     * 替换字符串中的变量
     * @param src 带有变量的字符串
     * @param replacement 变量对应的值
     * @param regex 变量表达式
     * @return 替换后的字符串
     */
    public static String replace(String src, Map<String, String> replacement, String regex)
    {
        if (isEmpty(src))
        {
            return src;
        }
        else if(replacement == null || regex == null)
        {
            throw new IllegalArgumentException("replacement cannot be null");
        }
       
        Pattern p = Pattern.compile(regex);
        StringBuffer sb = new StringBuffer();
        Matcher m = p.matcher(src);
        while(m.find())
        {
            String temp = replacement.get(m.group());
            if (temp == null)
            {
                temp = "";
            }
            m.appendReplacement(sb, temp);
        }
        m.appendTail(sb);
       
        return sb.toString();
    }

猜你喜欢

转载自lic0112.iteye.com/blog/2031573
今日推荐