java内的正则表达式通用类

这个类使用很方便直接

EncodeString es = new EncodeString();

es.ubbEncoder(需要对其替换的字符串内容或变量);

大家可以直接复制使用,有兴趣研究的朋友可以仔细看看类中正则实现的核心部分 ubbPattern

代码内容

package com.gamvan.tools;
import java.util.regex.*;

public class EncodeString{

    public String ubbPattern(String str, String cp, String mc){

        //str 准备对其操作的字符串,cp匹配的内容,mc准备替换成的内容

        String txt = new String();

        txt = str;

        if(str!=null && !str.equals("")){

            txt = str;

            Pattern p = Pattern.compile(cp,2); //参数2表示大小写不区分

            Matcher m = p.matcher(txt);

            StringBuffer sb = new StringBuffer();

            int i=0;

            boolean result = m.find();

            //使用循环将句子里所有匹配的内容找出并替换再将内容加到sb里

            while(result) {

                i++;

                m.appendReplacement(sb, mc);

                //继续查找下一个匹配对象

                result = m.find();

            }

            //最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里;

            m.appendTail(sb);

            txt = String.valueOf(sb);

        }else{

            txt = "";

        }

        return txt;      
    }

    public String ubbEncoder(String str){

        //以下仅对论坛几个典型的UBB代码作了替换,大家可以根据需要自己扩充

        str = ubbPattern(str,"//[b//](.*?)//[/b//]","<strong>$1</strong>"); //粗体字

        str = ubbPattern(str, "//[color=(.*?)//](.*?)//[/color//]","<span   style=color:$1>$2</span>"); //颜色

        str = ubbPattern(str, "//[url//](.*?)//[/url]","<a href=/"$1/" target=/"_blank/">$1</a>"); //url网址替换

        str = ubbPattern(str, "//[url=(.*?)//](.*?)//[url//]","<a href=/"$1/" target=/"_blank/">$2</a>"); //url网址替换

        return str;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值