正则表达式

目录

(一)字符类正则表达式

 (二)预定义字符

(三)练习


正则表达式可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性;

正则表达式的作用:

校验字符串是否满足规则;

在一段文本中查找满足要求的内容;

在正则表达式里,方括号表示的是范围;

(一)字符类正则表达式

public class RegexDemo1 {
    public static void main(String[] args) {
        //只能是a,b,c;
        System.out.println("----------1-----------");
        System.out.println("a".matches("[abc]"));
        System.out.println("z".matches("[abc]"));
        System.out.println("ab".matches("[abc][abc]"));
        //不能是a,b,c;
        System.out.println("----------2------------");
        System.out.println("a".matches("[^abc]"));
        System.out.println("z".matches("[^abc]"));
        //a到z,A到Z(包括头尾的范围);
        System.out.println("----------3------------");
        System.out.println("a".matches("[a-zA-Z]"));
        //[a-d[m-p]] a到d,或m-p;
        System.out.println("----------4------------");
        System.out.println("a".matches("[a-d][m-p]"));//true
        //[a-z&&[def]] a-z和def的交集。为:d,e,f;
        //如果要求两个范围的交集,需要写符号&&;
        //如果写成了一个&,那么&表示的不是交集,而是一个简单的&符号;
        System.out.println("----------5------------");
        System.out.println("a".matches("[a-z&&][def]"));//true
        //[a-z&&][^bc] a-z和非bc的交集(等同于[ad-z])
        System.out.println("----------6----------");
        System.out.println("a".matches("[a-z&&[^bc]]"));//true
        //[a-z&&[^m-p]]a-z和除了m-p的交集,等同于[a-lq-z]
        System.out.println("---------7------------");
        System.out.println("a".matches("[a-z&&[^m-p]]"));//true


    }
}

 (二)预定义字符

public class RegexDemo2 {
    public static void main(String[] args) {
        // \转义字符 改变后面那个字符原本的含义;
        //.表示任意一个字符
        System.out.println("你".matches(".."));//false
        System.out.println("你b".matches(".."));//true
        //几个.,对应几个字;
        // \d表示任意的一个数字;
        //因为所以但是\\表示\
        System.out.println("1".matches("\\d"));//true
        // \\w是单词字符[a-zA-Z_0-9]
        System.out.println("z".matches("\\w"));//true
        //数字字母下划线,至少6位;
        System.out.println("12345_".matches("\\w{6,}"));//true
        //必须是数字和字符,必须是4位;
        System.out.println("23dF".matches("[a-zA-Z0-9]{4}"));//true


    }
}

(三)练习

public class RegexDemo3 {
    public static void main(String[] args) {
        //正则表达式验证用户输入的手机号码是否满足要求;
        //心得:拿着一个正确的数,从左到右依次去写;
        //13112345678
        //分成了三个部分:
        //1.一:1表示手机号码只能以1开头;
        //2.二:[3-9]表示手机号码第二位只能是3-9之间的;
        //3.三:\\d{9}表示任意数字可以出现9次,也只能出现9次;
        String regex1="1[3-9]\\d{9}";
        System.out.println("13112345678".matches(regex1));//true
        System.out.println("137123456671".matches(regex1));//false
        System.out.println("----------------------");
        //随机电话号码
        //正则时要把数据分成三部分:
        //一:区号;0\\d{2,3}
        //0:表示区号一定以0开头;\\d{2,3}表示区号从第二位开始可以是任意的数字,可以出现2-3次;
        //二:- ?表示次数,0次或一次;
        //三:号码;号码的第一位不能以0开头,第二位可以是任意数字;
        //号码的总长度5-10;
        String regex2="0\\d{2,3}-?[1-9]\\d{4,9}";
        System.out.println("020-2324242".matches(regex2));//true
        //邮箱号码:
        //一:@的左边 \\w+
        //任意的字母数字下划线,至少出现一次就可以了;
        //二:@只能出现一次;
        //3.1 .左边 [\\w&&[^_]]{2,6}
        //任意的字母+数字总共出现2-6次,此时不能出现下划线了;
        String regex="\\w+@[\\w&&[^_]]{2,6}\\.[a-zA-Z]{2,3}{1,2}";
        




    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值