栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

正则表达式(学生随便记得笔记)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

正则表达式(学生随便记得笔记)

引语:正则表达式多用于项目的账号密码验证,其作用可以极大降低代码量

1.正则表达式初体验
2.正则表达式使用方法(推荐API文档查阅不需背)
3.正则表达式一些案例
4.正则表达式在一些方法中的应用
5.正则表达式爬取信息(拓展,有点类似python爬虫)

1.正则表达式初体验

//案例:登录码判断是否符合规范
//如判断6到20位只包含数字的判断方法

//方法1:普通方法

public static void main(String[] args) {

      System.out.println(regex("31425423535"));//true


}
public static boolean regex(String qq){

        if(qq==null ||qq.length()<6||qq.length()>20) return false;

        for (int i = 0; i < qq.length(); i++) {

            char ch=qq.charAt(i);

            if (ch<'0'||ch>'9') return false;
        }

        return true;
}

//方法2:正则表达式
public static void main(String[] args) {
    
        System.out.println(NewRegex("3213123"));
        
    }
public static boolean NewRegex(String qq){

        return qq!=null&&qq.matches("\d{6,20}");

}






 以上案例可以看出正则表达式可以大幅度简化代码量

2.正则表达式使用方法(推荐API查阅不用都背)

1.在javaAPI中搜索pattern则返回正则表达式各种使用方法(我使用的是jdk16和jdk17版本都是可以正常使用的)

 

2.以下是根据API写的一些内容,可以看懂API然后调用即可

 public static void main(String[] args) {
    

        

        

        System.out.println("a".matches("[abc]"));

        System.out.println("z".matches("[^abc]"));

        System.out.println("E".matches("[a-zA-Z]"));

        System.out.println("e".matches("[a-zA-Z]"));

        System.out.println("c".matches("[a-d[o-z]]"));

        System.out.println("f".matches("[a-d[o-z]]"));

        System.out.println("d".matches("[a-z&&[def]]"));

        System.out.println("a".matches("a-z&&[def]"));

        System.out.println("----------------------------");

        

        //API中的前需要再添加,是由于java对的敏感所以需要进行转义,
        //以上规则为小写为大写的反向表达
        System.out.println("1".matches("\d"));

        System.out.println("d".matches("\D"));

        System.out.println("f".matches("\w"));

        System.out.println("@".matches("\W"));


    }

3.利用正则表达式判断电话号码和邮箱号码是否正确

(小技巧:idea上ctrl+alt+t可以为选中内容进行死循环或者异常处理)

 public static void main(String[] args) {
        checkPhone();//电话号码判断
        

    }

    public static void checkPhone(){

        Scanner sc=new Scanner(System.in);
        System.out.println("输入手机号");
        while (true) {
            if (sc.next()!=null&&sc.next().matches("\d{11}")){

                System.out.println("存在");//代表存在手机号
                break;
            }else {
                System.out.println("不存在");//代表不存在手机号
            }
        }

    }
public static void main(String[] args) {
        
        checkEmail();//电子邮箱判断

    }
ublic static void checkEmail(){
        //1090762149@qq.com
        Scanner sc=new Scanner(System.in);

        while (true) {
            System.out.println("请输入电子邮箱号");
            //1090762149@qq.com
            String email=sc.next();
            if(email!=null&&email.matches("\w{5,15}@\w{2}\.\w{3}")){

                System.out.println("存在");
                break;
            }else {
                System.out.println("不存在");
            }
        }

    }

4.正则表达式在方法中的应用

方法名说明
public String relpaceAll(String s1,String s2)按照正则表达式匹配内容进行替换
public String[] split(String regex)按照正则表达式匹配的内容进行分割字符串,返回一个字符串数组

public static void main(String[] args) {


        //利用split进行乱数据分割;
        String str="黑Animal啊tiger呀Dog";

        String[]arr=str.split("\w+");//分割单词结果出汉字

        String[]arrs=str.split("\W+");

        for (int i = 0; i < arr.length; i++) {

            System.out.print(arr[i]);
        }
        for (int i = 0; i < arrs.length; i++) {
            System.out.println(arrs[i]);
        }


    }
public static void main(String[] args) {



        
        //利用replaceAll进行替换的方法

        String str="黑Animal啊tiger呀Dog";

        String newstr=str.replaceAll("\w+"," ");//将括号左边的内容替换为括号右边内容

        System.out.println(newstr);


    }

5.正则表达式爬取网站字符串内容格式模板,直接套用,然后regex内容替换成自己需要的正则表达式内容即可

public static void main(String[] args) {
        
        //需求:从网上的内容中爬取自己所需要的内容
       
        String result="X";//X:X代表从互联网上爬取的一堆需要和不需要内容的随机混杂
 
        String regex="(a)|(b)|(c)|.....";//定义爬取规则和字符串形式
        //a,b,c代表填入需要内容的正则表达式,括号则是进行分组

        Pattern pattern=Pattern.compile(regex);//将爬取规则编译成字符串对象

        Matcher matcher=pattern.matcher(result);//得到一个内容匹配对象

        //开始寻找
        while (matcher.find()){
            String results=matcher.group();
            System.out.println(results);
        }

    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821164.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号