java学习之路---正则表达式---学习笔记

本文深入探讨了正则表达式的使用方法及其在不同技术领域的应用,包括字符集合、自定义字符集合、字符边界、选择符与分组、模式修改符、预搜索等,同时展示了如何匹配邮箱、电话号码等实际场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.标准字符集合(大小写意思相反)
\d代表所有数字

\w任意字母数字下划线

\s空白符,制表符

.所有的字符

2.自定义字符集合

[1234]匹配1,2,3,4任意数字

[^abcd]除了abcd,都匹配

[a-p]表示a到p

[a-f0-7]表示a到f,0到7
\d(10)前面的规则重复10此

\d(2,4)表示2-4位

a\d(1,)b表示a,b中间数字至少一个

a\d+b同样的意思

a\d*b和a\d(0,)表示a,b中间有0个以上的数字

a\d(0,1)b和 a\d?b一样的意思

\d{1,4}表示出现数字1或2或3或4次(贪婪模式)


\d{2,4}?表示出现数字2次就不找了本次了,就直接找下次了(非贪婪模式)

3.字符边界
^字符串开始的位置

$ 字符串结尾的位置

\b  匹配一个单词边界(左匹配右不匹配)

4.选择符与分组

选择符(|)

分组(())

邮箱的匹配

([\w-]+)@([\w-]+)(\.[a-zA-Z](2,5))(1,2)

匹配电话号码,手机号

0\d(2,3)-\d(7,8)(固话)


0\d(2,3)-\d(7,8)|(1[345678]\d(9))

5.反向应用(应用你所捕获的字符串)(一个括号就是一个应用,从左边第一个括号开始)

([a-z]{2})\1重复一次(gogo,toto)

匹配<p>hjkhjkhjkkhj</p>

<([a-zA-Z])>.+</\1>

6.模式修改符

(?i)[a-z](?=i)表示第一个?:开始不区分大小写,到?=i关闭不区分大小写,一般不用这种,用[a-zA-Z]就OK了

7.预搜索(是对位置的匹配)

搜索 going,只要go 

[a-z]+(?=ing)(表示go后面跟的是ing)
(?<= _)[a-z]+(表示以_开头)

(?!exp)(表示后面不能匹配)

(?!<=exp)(表示前面不能匹配)








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值