带你快速掌握_正则表达式(一)

廉价感情. 提交于 2020-04-06 11:03:11

正则表达式 

一. 引言&概述

  • 为什么要讲正则表达式?

帮我们简化字符串的操作(判断、替换、切割…..

正则表达式: 正确规则 的表达式

 

  • 作用:

简化字符串的操作(判断、替换、切割…..

 

  • 伪代码:

判断当前字符串是否为一个QQ号  

正确规则的式子: 要求是纯数字,要求5~10位,不能以0开头

 

 

 

二.快速入门使用

话不多说,直接上案例使用:

检查校验字符串中的QQ号是否如何如下规则:

①必须为5~15位数字

②不能以0开头

如果不用正则是这样写的:

/*
* 入门案例:不用正则
* */
public static void main(String[] args) {
    //1、准备一个待校验的QQ号
    String str = "1231234";
    //2、判断:QQ号必须是数字
    try {
        int i = Integer.parseInt(str);
    } catch (NumberFormatException e) {
        System.out.println("QQ号不对");
        return;
    }
    //3、判断:QQ号5~15位之间,不能以0开头
    if(str.length()>=5 && str.length()<=15
            && !str.startsWith("0")){
        System.out.println("QQ号格式正确");
    }else{
        System.out.println("QQ号不对");
    }
}

 

 

使用正则:

/*
* 入门案例:用正则
* */
public static void main(String[] args) {
    //1、准备一个待校验的QQ号
    String str = "1231234";
    //2、定义一个正则表达式   本阶段的Java编程中,正则表达式 都是以 字符串 形式出现
    String reg = "[1-9][0-9]{4,14}";
    //3、判断   matches匹配
    boolean b = str.matches(reg);
    System.out.println(b?"qq号格式正确":"qq号不对");
}

 

 

 

 

 

 

三. Java中正则表达式的用法【重点】

方法名

描述

boolean matches(String regex)

当前字符串是否匹配给定的正则表达式

true:匹配

false:不匹配

String replaceAll(String regex,String replacement)

使用replacement替换当前字符串中所有符号正则表达式的内容

String[] split(String regex)

根据给定的正则表达式拆分当前字符串

 

public static void main(String[] args) {
    //需求:校验手机号
    //1、为11位数字
    //2、第一位为1,第二位3,4,5,7,8   后面的位数0-9
    String num = "18810033112";
    String reg = "1[34578][0-9]{9}";
    System.out.println(num.matches(reg));
}

 

public static void main(String[] args) {
//        举例:将字符串中的数字全部替换成!号
        String str = "1a2b3c4d";
        //正则:
        System.out.println(str.replaceAll("[0-9]","!"));
        System.out.println(str.replaceAll("\\d","!"));
    }

 

public static void main(String[] args) {
        String str = "abcAAAabcAAAcdeAAAccAA";
//        要求替换所有的AAA为0
//        效果:abc0abc0cde0ccAA
        String reg = "[A]{3}";
        String ss = str.replaceAll(reg, "0");
        System.out.println(ss);
}

 

public static void main(String[] args) {
    String str = "你说今天天气不是你想要的,你想全世界都变成你想变成的样子,你告诉我今天你要吃蛋糕,我买了蛋糕,你却说今天你要减肥";
    System.out.println(str.replaceAll("你.","你好"));
}

 

 

 

四.​​​​​​​ 常见正则表达式

表达式

描述

^[a-z0-9_-]{3,16}$

用户名

^[a-z0-9_-]{6,18}$

密码

^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$

电子邮箱

[\u4e00-\u9fa5]

匹配中文字符的正则表达式

 

案例使用:

  • 题目:

从控制台输入一个字符串。使用正则来对字符串进行一系列操作:

①判断字符串是否是一个合格的用户名

②将字符串中的数字用#号替代.   数字的正则:[0-9] 或者 \\d

③根据#”号将字符串切割成字符串数组并遍历展示

public static void main(String[] args) {
    //1、控制台接收字符串
    Scanner scan = new Scanner(System.in);
    System.out.println("控制台输入一个字符串:");
    String username = scan.nextLine();
    //2、判断
    String reg = "^[a-z0-9_-]{3,16}$";
    System.out.println(username.matches(reg)?"合格":"不合格");
    //3、替换
    username = username.replaceAll("\\d","#");
    //4、切割
    String[] arr = username.split("#");
    System.out.println(Arrays.toString(arr));
}

 

 

下篇将详解,<正则表达式-附录>这更是重点哦!

 实时关注动态噢!!!

 

 

请给努力中的自己点个赞哦!

每天进步一点点`~~~~~

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!