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

一篇讲明白程序员必须会的-正则表达式

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

一篇讲明白程序员必须会的-正则表达式

正则表达式常用于注册和登录时账号和密码的验证,举一个简单的例子就懂了.

java中正则表达式常常在String类中的matches()方法中使用,其实就是一个匹配的过程:

    当我们注册一个百度账号时,输入的手机号需要满足:

      号码以1开头

      第二位为3,4,5,6,7,8,9

      号码为11位

如图:

当我们的输入不合法时会报错.输入是否合法就是用正则表达式来判断(匹配)的 .

String s = "13723455678";
boolean res = s.matches("1[3456789]\d{9}");
System.out.println(res);

输出的结果是;true

解释其中的含义:用String类 . 里面的方法matches(); 这个方法的参数是String类型,所以输入参数时需要加" ",里面的内容1就表示字符串的第一位是1,没有特殊含义,[3456789]表示1后面的一位可能的取值为;3,4,5,6,7,8,9中的一位,也可以写成[3-9],那如果这这一位的值是3或6或9,应该怎么改?答案是[369]; 如果是6或7或8怎么改?答案是:[678]或[6-8].问一个问题,什么情况下可以写成[i-j]?(评论区见)

接下来的\d很有意思,在正则表达式的规则里d表示的是整数,那我们为什么要用\呢? 在java中表示转义的意思,是一个转义符,如n,加了,此时的n表示换行,所以n就是换行. 我们需要转义回来,让就表示这个符号,而不是转义符,就用\来表示.

所以,java里\d就表示正则表达式d ,表示的是匹配一个0-9的数字,即\d==[0-9],上面的代码中\d{9}是一个整体,表示匹配9个0-9的数字 , 再问一个问题:如果匹配6个0-9的数字呢?当然是\d{6} .

总之,在从前到后的匹配的过程中 : 1. 单个的数字在正则表达式中不具有什么特定的含义,就表示匹配这个数字; 2. [i-j]表示匹配一个从i到j的数字; 3. \d表示匹配一个数字 ; 4.\d{k}表示连续匹配k个从0-9的数字.

    判断一个邮箱地址是否合法:

String s = new String("1932568623@qq.com");
String s1 = new String("190876245@qq.com.cn");
boolean res = s.matches("\d{6,12}@qq\.(com|com\.cn)");
boolean res1 = s1.matches("\d{6,12}@qq\.(com|com\.cn)");
System.out.println(s);
System.out.println(s1);

输出的结果是:true true

字符串s匹配时,\d{6,12}表示匹配6到12之间个0-9的数字,@在正则表达式中没有什么表示,直接匹配即可,qq和@同理; . 所有字符都可以匹配, .在正则表达式中匹配的是 . ,和上面的d同理,需要用\. 匹配 . ;后面 | 表示或: 即匹配com或com.cn.

通过以上两个例子读者应该明白了正则表达式的用途,以及一些正则表达式的语法.正则表达式简单来讲就两个字:匹配. 下面附上一些常用的正则表达,读者可自行练习:

 注:图片截自菜鸟教程

如有问题,欢迎各位批评指教~

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

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

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