【Java常用API】正则表达式练习

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

请使用正则表达式完成如下需求

练习题1,需求如下:

练习题2,需求如下:

正则表达式总结


请使用正则表达式完成如下需求

练习题1,需求如下:

请编写正则表达式验证用户输入的手机号码是否满足要求

请编写正则表达式验证用户输入的邮箱号是否满足要求。

请编写正则表达式验证用户输入的电话号码是否满足要求。

package Regex;public class demon4 {public static <string> void main(String[] args) {/*需求请编写正则表达式验证用户输入的手机号码是否满足要求。请编写正则表达式验证用户输入的邮箱号是否满足要求。请编写正则表达式验证用户输入的电话号码是否满足要求。验证手机号码 13112345678 13712345667 13945679027 139456790271验证座机电话号码 020-2324242 02122442 027-42424 0712-3242434验证邮箱号码 3232323@qq.com zhangsan@itcast.cnn dlei0009@163.com dlei0009@pci.com.cn*///心得://拿着一个正确的数据,从左到右依次去写。//13112345678//分成三部分://第一部分:1 表示手机号码只能以1开头//第二部分:[3-9] 表示手机号码第二位只能是3-9之间的//第三部分:\\d{9} 表示任意数字可以出现9次,也只能出现9次String regex1 = "1[3-9]\\d{9}";System.out.println("13112345678".matches(regex1));System.out.println("13712345667".matches(regex1));System.out.println("-------------------------------------------------------");//座机电话号码//020-2324242 02122442 027-42424 0712-3242434//思路://在书写座机号正则的时候需要把正确的数据分为三部分//一:区号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));System.out.println("0712-3242434".matches(regex2));System.out.println("02122442".matches(regex2));System.out.println("------------------------------------------------");//邮箱号码//3232323@qq.com zhangsan@itcast.cnn dlei0009@163.com dlei0009@pci.com.cn//思路://在书写邮箱号码正则的时候需要把正确的数据分为三部分//第一部分:@的左边 \\w+//      任意的字母数字下划线,至少出现一次就可以了//第二部分:@ 只能出现一次//第三部分://      3.1         .的左边[\\w&&[^_]]{2,6}//                  任意的字母加数字,总共出现2-6次(此时不能出现下划线)//      3.2         . \\.//      3.3         大写字母,小写字母都可以,只能出现2-3次[a-zA-Z]{2,3}//      我们可以把3.2和3.3看成一组,这一组可以出现1次或者两次String regex3 = "\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3})(1,2)";System.out.println("3232323@qq.com".matches(regex3));System.out.println("zhangsan@itcast.cnn".matches(regex3));System.out.println("dlei0009@pci.com.cn".matches(regex3));System.out.println("--------------------------------------------");//24小时的正则表达式String regex4 = "([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";System.out.println("23:11:02".matches(regex4));}
}

练习题2,需求如下:

  • 请编写正则表达式验证用户名是否满足要求。

    要求:大小写字母,数字,下划线一共4-16位

  • 请编写正则表达式验证身份证号码是否满足要求。

    简单要求:18位,前17位任意数字,最后一位可以是数字可以是大写或小写的x

    复杂要求:按照身份证号码的格式严格要求。

练习代码如下:

package Regex;public class demon5 {public static void main(String[] args) {/*正则表达式练习:需求请编写正则表达式验证用户名是否满足要求。要求:大小写字母,数字,下划线一共4-16位请编写正则表达式验证身份证号码是否满足要求。简单要求:18位,前17位任意数字,最后一位可以是数字可以是大写或小写的x复杂要求:按照身份证号码的格式严格要求。身份证号码:41080119930228457x51080119760902230915040119810705387X130133197204039024 I430102197606046442*///用户名要求:大小写字母,数字,下划线一共4-16位String regex1 = "\\w{4,16}";System.out.println("zhangsan".matches(regex1));System.out.println("@qwsd".matches(regex1));System.out.println("zhan_an".matches(regex1));System.out.println("--------------------------------");//身份证号码的简单校验//18位,前17位任意数字,最后一位可以是数字可以是大写或小写的xString regex2 = "[1-9]\\d{16}(\\d|X|x)";System.out.println("41080119930228457x".matches(regex2));System.out.println("510801197609022309".matches(regex2));System.out.println("15040119810705387X".matches(regex2));System.out.println("430102197606046442".matches(regex2));//忽略大小写的书写方式//在匹配的时候忽略abc的大小写String regex3 = "(?i)abc";System.out.println("--------------");System.out.println("ABC".matches(regex3));//trueSystem.out.println("AbC".matches(regex3));//true//身份证号码的严格校验//编写正则的小心得://第一步:按照正确的数据进行拆分//第二步:找每一部分的规律,并编写正则表达式//第三步:把每一部分的正则拼接在一起,就是最终的结果//书写的时候:从左到右去书写。//410801 1993 02 28 457x//前面6位:省份,市区,派出所等信息,第一位不能是0,后面5位是任意数字        [1-9]\\d{5}//年的前半段: 18 19 20                                             (18|19|20))//年的后半段: 任意数字出现两次                                         \\d{2}//月份: 01~ 09 10 11 12                                            (0[1-9]1[0-2])//日期: 01~09 10~19 20~29 30 31                                     (0[1-9]|[12]\\d|3[01])//后面四位: 任意数字出现3次 最后一位可以是数字也可以是大写x或者小写x           \\d{3}[\\dXx]String regex4 = "[1-9]\\d{5}(18|19|20))\\d{2}(0[1-9]1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]";System.out.println("----------------------------------");System.out.println("41080119930228457x".matches(regex2));System.out.println("510801197609022309".matches(regex2));System.out.println("15040119810705387X".matches(regex2));System.out.println("430102197606046442".matches(regex2));}
}

正则表达式总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/755386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel新函数TEXTJOIN太强大了,这些高级用法太实用了

今天跟大家分享WPS中新函数TEXTJOIN的使用方法和技巧&#xff0c;它不仅仅是一个强大的文本连接函数&#xff0c;还有一些高级用法可以帮助我们快速解决日常难题。 TEXTJOIN函数介绍 作用&#xff1a;TEXTJOIN函数是文本连接函数&#xff0c;使用分隔符连接列表或文本字符串区…

【C++】手撕AVL树

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;能直接手撕AVL树。 > 毒鸡汤&#xff1a;放弃自…

数媒大厦会议中心 成都数字产业园示范基地

数媒大厦会议中心&#xff0c;位于成都市金牛区国际数字影像产业园3楼区域&#xff0c;这里也是成都数字产业园示范基地的核心区域。该成都文创产业园及辐射周边配套公园用地约500亩&#xff0c;涵盖产业实训空间、产业实验室、数字资产交易平台、产业集群发展空间、双创孵化空…

工业智能网关的功能特点、应用及其对企业产生的价值-天拓四方

一、工业智能网关的功能特点 工业智能网关是一种具备数据采集、传输、处理能力的智能设备&#xff0c;它能够将工业现场的各种传感器、执行器、控制器等设备连接起来&#xff0c;实现设备间的信息互通与协同工作。同时&#xff0c;工业智能网关还具备强大的数据处理能力&#…

PR是啥?一篇文章学会Pull Request到底是干嘛的

PR&#xff1f;Pull Request 概念 PR,全称Pull Request&#xff08;拉取请求&#xff09;&#xff0c;是一种非常重要的协作机制&#xff0c;它是 Git 和 GitHub 等代码托管平台中常见的功能。在开源项目中&#xff0c;Pull Request 被广泛用于参与社区贡献&#xff0c;从而促…

html--蝴蝶

<!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>蝴蝶飞舞</title> <link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.cs…

YOLOV5 改进:增加注意力机制模块(SE)

1、前言 本章将介绍yolov5的改进项目,为v5增加新的模块---注意力机制、SE模块 大部分更改的代码是重复的,只有少部分需要更改,下面会详细讲解 yolov5的yaml文件介绍:YOLOV5 模型:利用tensorboard查看网络结构和yaml文件介绍-CSDN博客 yolov5的模块更改,C3更改为C2f模块…

pgsql中按照逗号拆分成列

原始数据如下&#xff0c;要拆分dict_label字段&#xff1a; selectt_d.dict_sort,t_d.dict_label,t_d.dict_value from sys_dict_data t_d where t_d.dict_type qc_audit_type ORDER BY t_d.dict_sort 关键代码&#xff1a; split_part(t_d.dict_label,,,1) as mValue, sp…

递推算法C++

所谓递推&#xff0c;是指从已知的初始条件出发&#xff0c;依据某种递推关系&#xff0c;逐次推出所要求的各中间结果及最后结果。其中初始条件或是问题本身已经给定&#xff0c;或是通过对问题的分析与化简后确定。从已知条件出发逐步推到问题结果&#xff0c;此种方法叫顺推…

C++作业day6

编程1&#xff1a; 封装一个动物的基类&#xff0c;类中有私有成员&#xff1a;姓名&#xff0c;颜色&#xff0c;指针成员年纪 再封装一个狗这样类&#xff0c;共有继承于动物类&#xff0c;自己拓展的私有成员有&#xff1a;指针成员&#xff1a;腿的个数&#xff08;整型 …

从自动化到测开,测试人员逆袭之路从此起步!

在当今竞争激烈的软件测试行业中&#xff0c;近期的招聘市场确实面临一些挑战。大量的求职者争相涌入岗位&#xff0c;许多热衷于功能测试的人士甚至难以找到理想的工作机会。更不幸的是&#xff0c;连自动化测试和性能测试这些专业领域也受到了测试开发人员的竞争压力。然而&a…

stm32-模拟数字转化器ADC

接线图&#xff1a; #include "stm32f10x.h" // Device header//1: 开启RCC时钟&#xff0c;包括ADC和GPIO的时钟//2&#xff1a;配置GPIO将GPIO配置为模拟输入模式//3&#xff1a;配置多路开关将左边的通道接入到规则组中//4&#xff1a;配置ADC转…

北京市密云办理营业性演出许可所需材料及注意事项

尊敬的客户&#xff0c;您好&#xff01;我们是北京经典世纪集团有限公司&#xff0c;专注于资 质代办服务。在这篇文章中&#xff0c;我们将为您介绍一下在北京市密云地区办理营业性演出许可所需的材料及需要注意的事项。&#xff08;游览器搜经典世纪胡云帅&#xff09; 办理…

买堡垒机的企业主要目的是什么?哪家堡垒机好?

近几年企业越来越重视网络安全了&#xff0c;也越来越多的企业购买了堡垒机。但还有一些企业不知道堡垒机是什么&#xff0c;今天我们就来聊聊买堡垒机的企业主要目的是什么以及哪家堡垒机好。 买堡垒机的企业主要目的是什么&#xff1f; 一般买堡垒机的企业目的不外乎是这三个…

学习笔记Day11:初探Linux

Linux系统初探 Linux系统简介 发行版本Ubuntu/centOS&#xff0c;逻辑一样&#xff0c;都可以用。 服务器 本质是一台远程电脑&#xff0c;大多数服务器是Linux系统&#xff0c;通常使用命令行远程访问而不是桌面操作。LInux服务器允许多用户同时访问。NGS组学测序数据上游…

OSPF虚链路vlink

OSPF虚链路——vlink&#xff08;使得其他区域和骨干区域相连&#xff09; 虚链路&#xff1a;一定是跨越非骨干区域连接的 1、虚链路属于区域0的逻辑链路 2、虚链路只能穿越1个非骨干区域 3、虚链路不能穿越特殊区域&#xff1b; vlink在配置的时候&#xff0c;需要指对方…

后端工程师快速使用vue和Element

文章目录 Vue1 Vue概述2 快速入门3 Vue指令3.1 v-bind和v-model3.2 v-on3.3 v-if和v-show3.4 v-for3.5 案例 4 生命周期 Element快速使用1 Element介绍2 快速入门3 当前页面中嵌套另一个页面案例代码案例截图 Vue 1 Vue概述 通过我们学习的htmlcssjs已经能够开发美观的页面了…

XUbuntu22.04之自定义fd+rg极速命令组合(二百二十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

《探索AI辅助研发的未来之路》

在当今科技飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经逐渐渗透到各个领域&#xff0c;其中之一便是研发领域。AI辅助研发正以惊人的速度改变着我们对于创新和发现的理解。本文将从技术进展、行业应用、挑战与机遇、未来趋势、法规影响以及人才培养等方…

Vcenter 6.7部署文档

下载VMware-VCSA-all-6.7.0 iso文件 找到installer文件夹 ## 找到win32目录 点击installer 接下来按照截图一步步安装 开始进行安装 进度部署第二阶段 配置一个内部NTP 服务器 配置VCenter的登录用户名和密码 ## vcenter配置开始