正则表达式

一.正则表达式

1.基本介绍

(1).正则表达式regular expression(RegExp)技术专门用于处理文本问题,是对字符串执行模式匹配的技术
(2).一个正则表达式,就是用某种模式去匹配字符串的一个公式
(3).正则表达式不是只有Java才有,很多编程语言都支持正则表达式进行字符串操作

2.底层分析

1
2
3
4
5
6

3.语法

如果想要灵活的运用正则表达式,必须了解其中各种元字符的功能,元字符从功能上大致分为:
(1).限定符
(2).选择匹配符
(3).分组组合和反向引用符
(4).特殊字符
(5).字符匹配符
(6).定位符

(1).转义符\

\符号说明:在我们使用正则表达式去检索某些特殊字符的时候,需要用到转义符号,否则检索不到结果,甚至会报错
在Java的正则表达式中,两个\代表其它语言中的一个
需要用到转义符的字符有:. + ( ) $ / \ ? [ ] ^ { }

(2).字符匹配符

7
8
使用:
1
2

(3).选择匹配符

既可以匹配这个,又可以匹配那个
1

(4).限定符

2
使用:
在这里插入图片描述
q

(5).定位符

3

(6).分组

4
5
命名分组:
6
非捕获匹配:
7

二.三个常用类

1.Pattern类

pattern对象是一个正则表达式对象,Pattern类没有公共构造方法,要创建一个Pattern对象调用其公共静态方法,它返回一个Pattern对象,该方法接受一个正则表达式作为它的第一个参数
比如:Pattern r = Pattern.compile(pattern)

Pattern.matches(regStr, content)方法整体匹配:返回Boolean值(true或者false)
1
底层用的是Matcher类的matches()方法

2.Matcher类

Matcher对象是对输入字符串进行解释和匹配的引擎,与Pattern类一样,Matcher也没有公共构造方法,需要调用Pattern对象的matcher方法来获得一个Matcher对象
方法一览:
2
String的matches方法也是整体匹配

3.PatternSyntaxException

PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误

三.分组,捕获,反向引用

分组:我们可以用圆括号组成一个比较复杂的匹配模式,那么一个圆括号的部分我们可以看作是一个子表达式/一个分组
捕获:把正则表达式中子表达式/分组匹配的内容保存到内存中以数字编号或显示命名的组里,方便后面引用,从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。组0代表的式整个正则式
反向引用:圆括号的内容被捕获后,可以在这个括号后被使用,从而写出一个比较实用的匹配模式,我们称之为反向引用,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部,内部反向引用\分组号,外部反向引用$分组号
例子:
3

四.应用实例

1.去重案例

4
5

2.String类中使用正则表达式

替换功能:
6
判断功能:
7
分割功能:
8
使用:
9
9

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值