java中正则的用法以及如何用正则替换指定的特殊字符

来源:互联网 发布:仿淘宝手机首页 编辑:程序博客网 时间:2024/06/07 22:21

 

如何将所要的字符串中的某个特殊字符进行替换,以下就是实施的过程。特别是发贴中要过滤替换掉特殊字符,以下是源码:

 /**
     * 重载 getStrSplit <p></p> str 要替换的字符串
     *
     * @param str
     * @return
     */
    public static String getStrSplit(String str) {                        //这个主要用于后期进行扩展
        return getStrSplit(str, "(\\d|[A-Za-z]){5,}", "*");
    }
   
    /**
     *
     * getStrSplit <p></p>
     *
     * @param str
     * 要替换的字符串
     * @param regex
     * 正则表达式
     * @param bsStr
     * 补位的标识符
     * @return
     */
    public static String getStrSplit(String str, String regex, String bsStr) {
        if(null==str||"".equals(str))
            return str;
        Pattern p = Pattern.compile(regex);                       //初始化正则
        Matcher m = p.matcher(str);                                   //进行正则匹配
        StringBuffer sbr = new StringBuffer();
        String subStr = "";
        while (m.find()) {                                                  //查找字符串匹配特殊字符的项
            subStr = m.group();                                        //获取匹配的字符
            subStr = subStr.substring(0, subStr.length() / 2);
            for (int i = 0; i < (int) subStr.length() / 2; i++)
                subStr += bsStr;
            m.appendReplacement(sbr, subStr);                 //替换要替换的特殊字符
        }
        m.appendTail(sbr);                     //将替换后的字符串进行合并
        return sbr.toString();                    //返回最终字符
    }

 

 public  String getStrSplit(String str) {
        //return getStrSplit(str,"[^A-Za-z1-9]"); 重载,替换所以除了字母数字以外的特殊字符
        return getStrSplit(str,"[^\\d]");   //替换所有非数字以外的字符
    }
   
    /**
     * 返回替换后的字符串(可以用于字符串正则验证,以及字符替换)
     * getStrSplit <p></p>
     *  事例getStrSplit("ffsd4564sdfds", "[^\\d]")     return  4564;
     * @param str
     * 要替换的字符串
     * @param regex
     * 正则表达式
     * @return
     */
    public  String getStrSplit(String str, String regex) {
        if(null==str||"".equals(str))
            return "";
        Pattern p = Pattern.compile(regex);               //初始化正则
        Matcher m = p.matcher(str);                       //进行正则匹配
        StringBuffer sbr = new StringBuffer();
        while (m.find()) {                                //查找字符串匹配特殊字符的项
            m.appendReplacement(sbr, "");                 //替换要替换的特殊字符
        }
        m.appendTail(sbr);                                //将替换后的字符串进行合并
        return sbr.toString();                            //返回最终字符
    }
 

原创粉丝点击