当前位置: 首页 > 图灵资讯 > 技术篇> 正则应用实例常用类和Matcher

正则应用实例常用类和Matcher

来源:图灵教育
时间:2023-05-29 13:52:36

1.应用实例8921.1对字符串进行以下验证

1.汉字

2.邮政编码

要求:1-9开头的六位数。例如:123890

3.QQ号码

12389、1345687、18769765等1-9开头的要求

4.手机号码

要求:135888899999等13、14、15、18开头的11位数必须以11位数为基础

com中的代码.stulzl.regexp10regexp

package com.stulzl.regexp10;import java.util.regex.Matcher;import java.util.regex.Pattern;////正则表达式应用实例  892public class Regexp10 {    public static void main(String[] args) {        //1.汉字        //String content = “韩顺平教育”;        //String regStr = u0391-ufffe5;// u0391-ufffe5 代表汉字的范围        //2.邮政编码        //要求:是1-9开头的六位数。例如: 123890        //String content = "123890";        //String regStr = \\\\\d{5}$";        //3.QQ号码        //要求是1-9开头的一个(5位数-10位数),例如: 12389 ,1345687,187698765        //String content = "123890";        //String regStr = \\\\\d{4,9}$";        //4.手机号码        //要求:必须是13, 14、15、18开头的11位数,比如13588889999        String content = "13588889999";        String regStr = \\\\\d{9}$";        Pattern pattern = Pattern.compile(regStr);        Matcher matcher = pattern.matcher(content);        if(matcher.find()){            System.out.println(“满足格式”);        }else{            System.out.println(“不符合格式”);        }            }}

1.2例2URL例题893代码com.stulzl.regexp1Regexp1

package com.stulzl.regexp11;import java.util.regex.Matcher;import java.util.regex.Pattern;////正则表达式应用实例  893/urlpubliclic class Regexp11 {    public static void main(String[] args) {        //String content ="https://www.bilibili.com/video/BV1fh411y7R8from=search&seid=1831060912083761326";        String content =                "http://edu.3dsmax.tech/yg/bilibili/my6652/pc/qg/05-51/" +                        "index.html#201211-1?track_id=jMc0jn-hm-yhrnfvad37ydhouh41XY +                        “mjls9zocm26gspy5arwwuxb4wywpmh2Q7gzr7dou0wlkviehulo1qntuk” +                        “yagake2jg1btd23lR57xzv83e9baxwkstcah4jdz7a7thGlqgdcz2zpy” +                        “33a0SVNMfmJLSNDzJ71TU68Rc-3PKE7VA3kyzjk4RKU”;        /**         * 思路         * 1. 先确定 url 的开始部分 https:// 或 http://         * 2.然后通过 ([\\w-]+\\.)+[\\w-]+    例如  匹配 www.bilibili.com         * 3.匹配(\/[\\w-?=&/%.#]*)?=&/%.#]*)?   /video/BV1fh411y7R8from=sear…………         */        //解释        //   ^(http|https)://)? 以http为准://或https:///开头,括号中写有共有部分 ?可能有一个也可能没有                //  ([\\w-]+\\.)+[\\w-]+  \\w-代表任何字母和 - 字符  \\.代表点(\\        // ([\\w-]+\\.)代表www的整体代表. 即 xx字母.  [\\w-]+代表com                // (\/\w-?=&/%.#]*)?=&/%.#]*)?   \/是转义/的意思,[\\\/w-?=&/%.#]是其中        // 可能有字母,数字,?,=,&,/,%,. ,#等字符,[]外面的*号意味着可能没有或许多(即0)-n)        // ()号外?com后面可能有一个,也可能没有一个                //注意:[. ? *]中括号中的特殊字符表示匹配        String regStr = (http|https)://)?([\\w-]+\\.)+[\\w-]+(\/\w-?=&/%.#]*)?$";        Pattern pattern = Pattern.compile(regStr);        Matcher matcher = pattern.matcher(content);        if(matcher.find()){            System.out.println(“满足格式”);        }else{            System.out.println(“不符合格式”);        }    }}

2.正则表达式三大常用类894

java.util.regex包主要包括以下三类:Pattern类、Matcher类和Patternsyntaxexception(异常)

●Pattern类

pattern对象是正则表达对象。pattern没有公共结构方法。为了创建一个pattern对象,调用它的公共静态方法,它返回到pattern对象。该方法接受正则表达作为其第一参数,例如:Pattermr=Pttern.compile(pattern);

●Matcher类

Matcher对象是解释和匹配输入字符串的引擎。和Pattern类一样,Matcher也没有公共结构方法。您需要调用Pattern对象的Matcher方法来获取Matcher对象

●PatternSyntaxException

Patternsyntaxexception是一个非强制性异常类别,它表示正则表达式模式中的语法错误。

2.1Pattern方法matches,即整体匹配matchescom中的代码.stulzl.regexp12Regexp12

package com.stulzl.regexp12;import java.util.regex.Pattern;// matches演示Pattern的整体匹配方法   用于整体匹配的894//演示matches方法,验证输入字符串是否符合使用条件  894public class Regexp12 {    public static void main(String[] args) {        String content = "hello abc hello, 韩顺平教育”“韩顺平教育”;        String regStr = "hello.*";//在这里,代表除\n以外的任何字符,*代表前面的字符是否可以有        boolean matches = Pattern.matches(regStr, content);        System.out.println(“整体匹配=”+matches);    }}

2.2Matcher类895com中的代码.stulzl.regexp13MatcherMethod

package com.stulzl.regexp13;import java.util.regex.Matcher;import java.util.regex.Pattern;///Matcher类常用方法  895public class MatcherMethod {    public static void main(String[] args) {        String content = "hello edu jack hspedutom hello smith hello hspedu hspedu";        String regStr = "hello";        Pattern pattern = Pattern.compile(regStr);        Matcher matcher = pattern.matcher(content);        while (matcher.find()) {            System.out.println(===================));            System.out.println(matcher.start());///返回开始匹配的索引            System.out.println(matcher.end());////返回结束匹配的索引            ///解释substring()是截取字符串的功能            System.out.println(”发现:""+content.substring(matcher.start(),matcher.end()));        }        //整体匹配,检查字符串是否符合某一规则        System.out.println(“整体匹配=”+matcher.matches());//false        //完成如果 content 有 hspedu 替换成 韩顺平教育        regStr = "hspedu";        pattern = Pattern.compile(regStr);        matcher = pattern.matcher(content);        String newContent = matcher.replaceAll(“韩顺平教育”);        System.out.println(”新newContentententent= "+newContent);        System.out.println(”旧contententent= "+content);    }}