欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java正则表达式工具类,正则表达式工具类,主要功能有:boolea

来源: javaer 分享于  点击 12971 次 点评:135

java正则表达式工具类,正则表达式工具类,主要功能有:boolea


主要功能有:booleanfind()是否能匹配到至少一个booleanmatch()匹配整个字符串//这个方法其实可以用^$做到intsize()匹配的字符串个数String[]getAll()获取所有匹配到的字符串Stringget(intindex)获取匹配到的第N个字符串StringreplaceAll(Stringreplacement)替换所有匹配到的字符串StringreplaceFirst(Stringreplacement)替换第一个匹配到的字符串StringreplaceTail(Stringreplacement)替换最后一个匹配到的字符串Stringreplace(intindex,Stringreplacement)替换第N个匹配到的字符串

(常用的功能应该就这些了吧)

demo输出结果:find-->truesize-->4------下面是get相关------请不要开玩笑all-->nullall-->abcall-->adcall-->aacall-->acc并没有匹配到辣么多all-->null------下面是replace相关------替换所有:诶嘿嘿 诶嘿嘿 诶嘿嘿 诶嘿嘿 abbc替换第一个:诶嘿嘿 adc aac acc abbc替换最后一个:abc adc aac 诶嘿嘿 abbc替换第2个:abc 诶嘿嘿 aac acc abbc替换第3个:abc adc 诶嘿嘿 acc abbc替换第10个(并没有10个):abc adc aac acc abbc------下面是匹配整个字符串------验证手机号18202020202:true验证手机号1320202020:false验证手机号20202020202:false[email&#160;protected]/ <![CDATA[ /!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/ ]]> /:true[email&#160;protected]/ <![CDATA[ /!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/ ]]> /:true验证邮箱www.baidu.com:false

测试类:```javaNone

 正则表达式工具类 ```javaimport java.util.regex.Matcher;import java.util.regex.Pattern;/** * 正则表达式工具类 * @author lu * */public class ZZUtil {    private static ZZUtil zz;    public static ZZUtil init(CharSequence res,String pattern){        if (zz==null||(!res.equals(zz.res)||!pattern.equals(zz.pattern))) {            //在没有实例或内容不同的时候新建一个实例            zz = new ZZUtil(res, pattern);        }        return zz;    }    private CharSequence res;    private String pattern;    private Pattern p;    private Matcher m;    private int size = 0;    private String[] list;//所有匹配到的字符串    private ZZUtil(CharSequence res,String pattern){        this.res = res;        this.pattern = pattern;        p = Pattern.compile(pattern);        m = p.matcher(res);        while(m.find()){            size++;        }        list = new String[size];        m.reset();        for (int i = 0; i < size; i++) {            if(m.find())list[i] = m.group();        }    }    /**是否能匹配到至少一个*/    public boolean find(){        return size>0;    }    /**匹配整个字符串,必须整个字符串满足正则表达式才算true*/    public boolean match(){        return find()&amp;&amp;get(0).equals(res);    }    /**获取所有匹配的字符串个数*/    public int size(){        return size;    }    /**获取所有匹配到的字符串*/    public String[] getAll(){        return list;    }    /**获取匹配到的第N个字符串*/    public String get(int index){        if (index<0) {            System.out.println("请不要开玩笑");            return null;        }        if (index>=size) {            System.out.println("并没有匹配到辣么多");            return null;        }        return list[index];    }    /**替换所有匹配到的字符串*/    public String replaceAll(String replacement){        return m.replaceAll(replacement);    }    /**替换第一个匹配到的字符串*/    public String replaceFirst(String replacement){        return m.replaceFirst(replacement);    }    /**替换最后一个匹配到的字符串*/    public String replaceTail(String replacement){        return replace(size-1, replacement);    }    /**替换第N个匹配到的字符串*/    public String replace(int index,String replacement){        m.reset();        boolean isFind = false;        while(index>=0){            isFind = m.find();            index--;        }        if(isFind){            StringBuffer sb = new StringBuffer();            m.appendReplacement(sb, replacement);            m.appendTail(sb);            return sb.toString();        }        return (String) res;    }}
相关栏目:

用户点评