正则表达式通常用于判断语句之中,用来检测一段字符串是否满足某一个格式.在日常生活中被广泛的用于各种用户输入信息的检测上.
而正则表达式实际上是一些具有特殊意义的字符序列.通过这些特殊字符构成的特殊序列,可以形成各种检测字符串的条件.

[Java初探外篇]__关于正则表达式 随笔 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

其中需要注意到的是:"."代表了任意字符,那么想要表示"."符号,就需要使用转义符\.;

另外需要注意到的一点就是,我们可以通过[]来代表一个元字符.如5[abcd],那么可以和它匹配的就是5a,5b,5c,5d.或是[1-9]代表了1-9中的每一个数字.[a-zA-Z]可以表示26个大小写字母.等等.[]还可以嵌套使用[a-c[b-d]]他就表示,a,b,c和b,c,d的并,及可以是:ab,ac,ad,bb,bc,bd等.

同时,在正则表达式中还可以使用限定符来限定字符出现的次数.

[Java初探外篇]__关于正则表达式 随笔 第2张

所以在正则表达式中,正则表达式其实是由上面字符和元字符以及[]组合元字符以及限定符组合而成的一段特殊的字符序列(亦可以说是表达式).所以在正则表达式的判断中.我们不能使用==符号,也不能使用String类的equals方法.

String类中提供了专门比较字符串和正则表达式的方法:matches(String regex)参数是一个String型的正则表达式.

  • 下面是一个使用正则表达式判断输入邮箱地址格式的例子:
package java01.day_4_12;

import java.util.Scanner;

/**
 * @outhor xiaoshe
 * @date 2019/4/12  - @time 20:53
 * 正则表达式
 */
public class sty_Regularexpression {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入有效的邮箱:");
        String str = scanner.nextLine();
        sty_Regularexpression sty_regularexpression = new sty_Regularexpression();
        sty_regularexpression.checkemil(str);
    }

    private void checkemil(String str){
        if (str.matches("\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}")){
            System.out.println("邮箱地址有效");
        }else
            System.out.println("邮箱地址无效");
    }
}
  • 结果
    [Java初探外篇]__关于正则表达式 随笔 第3张

[Java初探外篇]__关于正则表达式 随笔 第4张

更新时间:
2019-4-12
21:18

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄