-
-
[原创]Java正则表达式笔记总结
-
发表于:
2021-10-31 12:21
26419
-
最近做一个web探测的项目,在项目中多处用到java
正则表达式,今天将回顾的正则表达式做一个梳理,本文属于看完廖大佬笔记后的梳理,仅为平时参考,详细大家可以查看下面相关网址。
java正则表达式的学习参考以下学习资料即可:
(1)菜鸟教程:菜鸟教程的正则基础基本讲的很可以了
(2)廖雪峰的官方网站——Java篇:廖大佬的Java教程还是讲的非常清晰的
(1)单个匹配规则

<1>匹配任意字符
我们使用.
匹配一个任意字符
例如:正则表达式a.c
可以匹配"abc","a&c",a_c
等,但是它并不能匹配"ac"、"a&&c"
,因为.
匹配一个字符且仅限一个字符
<2>匹配数字
我们使用\d
匹配0-9
这样的数字
例如:正则表达式00\d
可以匹配"007","008"
,它不能匹配"00A","0077"
,因为\d
仅限单个数字字符
<3>匹配常用符
我们使用\w
匹配一个字母、数字或下划线
例如:正则表达式java\w
可以匹配"javac","java9","java_"
,它不能匹配"java#","java"
,因为\w
不能匹配#
,空格等字符
<4>匹配空格字符
我们使用\s
来匹配一个空格字符,注意空格字符不但包括空格,还包括tab
字符
例如:正则表达式a\sc
可以匹配a c
,但是不能匹配"ac","abc"
<5>匹配非数字
我们使用\D
来匹配一个非数字
例如:00\D
可以匹配"00A","00#"
同理我们使用\W
来匹配非(字母、数字或下划线)
我们使用\S
来匹配非空格的字符
(2)多个字符匹配规则

<1>重复匹配
我们结合单字符匹配+多字符匹配规则就可以匹配更多的字符
情况一:数字
1
2
3
4
5
6
7
8
|
( 1 )数字 + 字母混搭 例如: "AB380" 使用修饰符 * 匹配任意个数字符,正则表达式: "AB\d*"
( 2 )数字 + 字母混搭 例如: "AB380" 使用修饰符 + 匹配至少一个字符,正则表达式: "AB\d+" ,无法匹配 "A" ,修饰符 + 可以匹配至少一个字符
( 3 )数字 + 字符混搭 例如: "A" "A0" 使用修饰符 ? 可以匹配 0 个或一个字符,正则表达式: "A\d?" ,这里表示只匹配一个数字, "A33" 就无法匹配了
( 4 )数字 + 字符混搭 例如: "A380" 使用修饰符 {n} 可以精确指定n个字符
正则表达式: "A\d{3}" : 可以匹配 "A389"
"A\d{3,}" :可以匹配至少 3 个数字
"A\d{2,3}" :可以匹配 2 - 3 个数字
"A\d{0,3}" :可以最多匹配 3 个数字
|
情况二:电话号码
1
2
|
字符串: "010-12345678" "0755-7654321"
正则表达式: "\d{3,4}-\d{7,8}"
|

(1)匹配开头和结尾
我们进行多行匹配时,用^
表示开头,$
表示结束
例如:正则表达式:^A\d{3}$
可以匹配"A001"、"A380"
(2)匹配指定范围
我们用[]
可以匹配范围内的字符,例如[123456789]
或[1-9]
可以匹配1-9
情况一:电话号码(规定一个7-8数字电话号码不能从0开头)
1
2
|
字符串: "1234567"
正则表达式:[ 1 - 9 ]\d{ 6 , 7 } 理解为:范围限定 + 正则
|
情况二:任意6位十六进制数
1
2
|
字符串: "1A2b3c"
正则表达式:[ 0 - 9a - fA - F]{ 6 }
|
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课