版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块五Java常用API正则表达式任务四正则表达式在程序开发中,常常需要对邮箱、手机号码和身份证号码等字符串做各种限制,例如限制它们的长度和格式。如果使用传统的条件语句或循环逐个检查字符,代码量会很庞大且难以维护。对此可以使用正则表达式,这是一种用于模式匹配和处理字符串的工具,基于正则表达式可以更高效地处理和匹配文本字符串,并减少代码复杂度。学习目标掌握正则表达式的元素,能够简述正则表达式常用元素的作用
先定一个小目标!掌握Pattern类和Matcher类的应用,能够使用Patter类和Matcher类进行字符串与正则表达式的匹配正则表达式的元素正则表达式是一种使用预先定义的特定字符、字符组合和语法规则来表达对字符串进行模式匹配和处理的工具,其组成元素可以为字符和特殊字符、量词、边界等,基于这些元素可以创建复杂的匹配模式,用于搜索和替换文本数据。正则表达式的元素1.普通字符和特殊字符普通字符:指那些可以直接匹配的字符,如大小写的字母、数字、空格等。例如,“a”和“1”都是普通字符。.(点号):匹配除换行符外的任意单个字符,例如,正则表达式“t.n”匹配“tan”“ten”。^:匹配输入字符串的开始位置,例如,“^abc”匹配以“abc”开头的字符串。$:匹配输入字符串的结束位置,例如,“abc$”匹配以“abc”结尾的字符串。+:匹配前面的模式一次或多次,例如,“a+”匹配一个或多个连续的“a”字符,“ab+”匹配一个“a”字符,后面跟着一次或多次出现的“b”字符。正则表达式的元素1.字符和特殊字符*:匹配前面的模式零次或多次,例如,“a*”匹配零个或多个连续的“a”字符,“ab*”匹配一个“a”字符,后面跟着零个或多个连续的“b”字符。?:匹配前面的模式零次或一次,例如,“a?”匹配零个或一个“a”字符,“ab?”匹配一个“a”字符,后面跟着零个或一个“b”字符。[]:定义一个字符集合,匹配其中任意一个字符,例如,“[abc]”匹配“a”、“b”或“c”中的任意一个字符。。():用于分组和捕获匹配的子表达式,例如,“(abc)”将“abc”视为一个整体进行匹配,“(ab)+”匹配一个或多个连续出现的“ab”。正则表达式的元素2.量词量词用于指定模式出现的次数,常见的量词如下。{n}:精确匹配前面的模式出现n次,例如,“a{3}”匹配连续出现三个“a”的字符串。{n,}:匹配前面的模式至少出现n次,例如,“a{3,}”匹配连续出现三个或更多个“a”的字符串。{n,m}:匹配前面的模式出现n到m次,例如,“a{2,4}”匹配连续出现两个到四个“a”的字符串。正则表达式的元素3.边界边界用于指定匹配的位置,常见边界如下。\b:匹配单词的边界,单词边界是指单词与其他字符之间的分界点,通常是单词的开头或结束位置,例如,“\bword\b”匹配独立的单词“word”。\B:匹配非单词的边界,例如,“\Bword\B”可以匹配“swording”中的“word”,但不匹配独立的“word”。正则表达式的元素除了前面的三种元素,正则表达式还有一些其他常用元素,具体如下。\d:匹配任何数字字符,相当于[0-9]。\D:匹配任何非数字字符,相当于[^0-9]。\s:匹配任何空白字符,包括空格、制表符、换行符等。\S:匹配任何非空白字符。\w:匹配任何字母数字字符,相当于[a-zA-Z0-9_]。\A:匹配字符串的开始位置,不受多行模式的影响。\G:匹配当前匹配操作的结束位置。Pattern类和Matcher类1.Pattern类Pattern类是用于表示正则表达式编译过程的类,位于java.util.regex包中。Pattern类的使用方式通常是将正则表达式编译为Pattern对象,然后使用该对象进行匹配操作。除此之外,它还提供了多个方法,用于对字符串进行匹配或分割等操作。Pattern类和Matcher类1.Pattern类Pattern类的常用方法如下表所示。方法声明功能描述compile(Stringregex)将正则表达式regex编译为一个Pattern对象split(CharSequenceinput)根据Pattern对象所表示的正则表达式,将输入的字符序列input分割为字符串数组matcher(CharSequenceinput)根据Pattern对象所表示的正则表达式,返回一个Matcher对象,用于对输入的字符序列input进行匹配matches(Stringregex,CharSequenceinput)静态方法,用给定的正则表达式regex对输入的字符序列input进行整体匹配,并返回一个布尔值,表示是否完全匹配成功pattern()获取Pattern对象表示的正则表达式的字符串形式Pattern类和Matcher类1.Pattern类下面通过一个案例演示使用Pattern的匹配和分隔操作。Example24.java源代码Pattern类和Matcher类1.Pattern类案例的运行结果如下图所示。Pattern类和Matcher类2.Matcher类Matcher类用于在给定的Pattern实例的模式控制下进行字符串的匹配工作。Matcher类的构造方法同样是私有的,只能通过Pattern类提供的matcher()方法得到该类的实例。Pattern类和Matcher类2.Matcher类Matcher类常用的方法如下表所示。方法名称功能描述booleanmatches()对整个字符串进行匹配,只有整个字符串都匹配才能返回truebooleanlookingAt()检查输入字符串的开头是否与正则表达式匹配booleanfind()在输入序列中查找与模式匹配的子序列intend()返回上次匹配操作的最后一个字符的索引加1,如果上次没有匹配操作或者没有找到匹配项,返回0Stringgroup()返回匹配到的子字符串intstart()返回匹配到的子字符串在字符串中索引的起始位置Pattern类和Matcher类2.Matcher类下面通过一个查找字符串内特定字符的案例演示Matcher类常用方法的使用。Example25.java源代码Pattern类和Matcher类2.Matcher类案例的运行结果如下图所示。【案例5-4】模拟用户注册案例描述许多网站和APP在新用户注册时,都会对用户输入信息内容进行限制,例如用户名必须为6个字符以内,密码必须包含大小写字母和数字等。本案例要求编写一个程序,模拟一个系统的用户注册过程,注册时需要输入用户名、密码、邮箱、手机号和身份证,只有每项信息格式都填写正确才会注册成功。要求用户每输入一项信息,程序会对该信息的格式进行检测,如果正确则继续输入下一项,否则提示该项信息格式错误,并重新输入,直到输入正确。【案例5-4】模拟用户注册案例描述每项信息的格式要求如下:用户名:必须为6个以内的字符,只能包含字母、数字和下划线。密码:必须为12个以内的字符,必须包含大小写字母、数字和特殊字符。特殊字符包括!@#$%^&七种。邮箱:为一般邮箱格式,通常由用户名和域名组成,中间用"@“符号连接。用户名由字母、数字、点(“.”)、下划线(”_“)和连字符(”-“)任意组合而成。域名由字母、数字、连字符(”-“)和点号(”.“)组成。手机号:为一般手机号格式,通常由11位数字组成,第1位是1,第2位是3~9的任意数字,后面11位为0~9的任意数字。身份证号:为一般身份证号格式,通常由18位数字组成,第1位为1~9的任意数字,中间16位为0~9的任意数字,最后1位为0~9的任意数字或X。【案例5-4】模拟用户注册案例效果任务小结本章详细介绍了JavaAPI的基础知识。首先讲解了Java中所有类的父类Object类,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿科常见病的中医护理
- 内镜护理日常操作规范培训
- PHC管桩试桩方案
- 安全生产施工方案
- 年产50000吨微孔增韧大结晶电熔氧化镁砂深加工与余热综合利用项目环境影响报告表
- 山东省青岛市新海岸新区信阳中学2025-2026学年初三第三次质量检测试题数学试题含解析
- 上海市普陀区名校2026年初三下学期一诊模拟数学试题文试卷含解析
- 长春科技学院《室内设计》2024-2025学年第二学期期末试卷
- 2026年山东省枣庄山亭区七校联考初三第三次质检英语试题含解析
- 应急预案的例文(3篇)
- 降低住院患者压力性损伤发生率
- 2023年土地复垦技术标准
- 2024高考数学讲义:三角函数及其解题
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
- 《低压配电设备安装与调试》课件 劳动 学习任务2 挂壁式配电箱安装与调试
- 入职申请表(完整版)
- 人教版2023七年级上册英语单词表
- 医院保洁员院感知识培训课件
- 招标邀请函模板范文
- 合作协议书(通用15篇)
- 高铁站前广场及配套道路建设项目施工组织总设计
评论
0/150
提交评论