Java基础知识总结梳理(八)
正则表达式
参考资料:https://www.runoob.com/regexp/regexp-tutorial.html
正则表达式快速入门
- 正则表达式是处理文本的利器
- 正则表达式是对字符串执行模式匹配的技术
- 步骤:
- 创建正则字符串
- 创建模式对象Pattern
- 创建匹配器Matcher
- 开始匹配
正则表达式基本语法
- 元字符-转义号 \
- \ 符号说明:在我们使用正则表达式去检索某些特殊字符的时候,需要用到转义符号,否则检索不到结果,甚至会报错
- 需要用到的转义符号的字符有以下:. * + ( ) $ / \ ? [ ] ^ { }
- 元字符-字符匹配符
- [] 可接收的字符列表:
- 示例:[efgh]e、f、g、h中的任意一个字符
- [^]不可接收的字符列表
- -连字符
- 示例:A-Z 任意单个大写字母
- 元字符-选择匹配符
- 在匹配某个字符串的时候是选择性的
| 匹配 “|” 之前或者之后的表达式
- 元字符-限定符
- 用于指定其前面的字符和组合项连续出现多少次
- *指定字符重复0次或n次
- +指定字符重复1次或n次
- ?指定字符重复0次或1次(最多一次)
- {n}只能输入n个字符
- {n,}指定至少n个匹配
- {n,m}指定知道n个但不多于m个匹配
- 元字符-定位符
- ^指定起始字符
- $指定结束字符
- \b 匹配目标字符串的边界
- \B 匹配目标字符串的非边界
三个常用类
- Pattern
- pattern对象是一个正则表达式对象,Pattern类没有公共构造方法,要创建一个Pattern对象,调用其公共静态方法,它返回一个Pattern对象,该方法接受一个正则表达式作为它的第一个参数
- Pattern r = Pattern.compile(pattern)
- Matcher
- Matcher对象是对输入字符串进行解释和匹配的引擎,与Pattern类一样,Matcher也没有公共构造方法,需要调用Pattern对象的matcher方法来获得一个Matcher对象
- PatternSyntaxException
- PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误
分组、捕获、反向引用
- 分组
- 我们可以用圆括号组成一个比较复杂的匹配模式,那么一个圆括号的部分我们可以看作是一个子表达式/一个分组
- 捕获
- 把正则表达式中子表达式/分组匹配的内容,保存到内存中以数字编号或显示命名的组里,方便后面引用,从左向右,以分组的左括号为标记,第一个出现的分组的组号为1,第二个为2,依次类推。组0代表的是整个正则式
- 反向引用
- 圆括号的内容被捕获后,可以在这个括号后被使用,从而写出一个比较实用的匹配模式,这个我们称为反向引用,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部,内部方向引用\分组号,外部反向引用$分组号
元字符
- 限定符
- 选择匹配符
- 分组组合和反向引用符
- 特殊字符
- 字符匹配符
- 定位符
参考内容:
【1】https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.337.search-card.all.click&vd_source=dd9bdf6f42e38406b07ef92b986e8171