正则导读
![]()
正则之字符组
- [字符组] 在同一个位置可能出现的各种字符组成了一个字符组
[0123456789] # 匹配0-9中某个字符的单个结果
[0-9] # 匹配0-9中某个字符的单个结果
[a-z] # 匹配a-z中某个字符的单个结果
[A-Z] # 匹配A-Z中某个字符的单个结果
[0-9a-zA-Z] # 匹配数字或小写字母或大写字母的单个结果
正则之元字符
. # 只能匹配除换行符以外的任意字符
\w # 只能匹配字母或数字或下划线,也不能匹配换行符
\s # 只能匹配任意的空白符(其实就是空格)
\d # 只能匹配任意的数字
\n # 匹配换行符(其实就是回车键)
\t # 匹配制表符(其实就是tab键)
\b # 匹配一个单词的结尾
\W # 不能匹配字母或数字或下划线,也不能匹配换行符
\D # 不能匹配任意的数字
\S # 不能匹配任意的空白符(其实就是空格)
^ # 匹配字符串的开始的字符
$ # 匹配字符串的结尾的字符
| # 管道符,表示或 前面的字符或者后面的字符
() # 优先匹配括号内部的表达式
[] # 匹配到字符组内的字符
\n 换行
\t 制表
\\ 取消转义
正则之量词
- 其实就是控制我们正则表达式中匹配到的字符出现的次数
* # 可以重复零次或更多次 (默认都是贪婪匹配,按最多的取)
+ # 可以重复一次或更多次
? # 可以重复零次或一次
{} # 可以控制字符重复的次数
{n,} # 从重复 n 次开始,最低最低你要重复 n 次,多的就是更多次
{n,m} # 从重复 n 次开始 ,知道 m 次结束
正则小练习之重复匹配
海. 海燕海娇海东王 海燕海娇海东
^海. 海燕海娇海东王 海燕
海.$ 海燕海娇海东 海东
李.? 李杰和李莲英和李二棍子 李杰 李莲 李二
# ? 可以出现 0 次 或者 1 次,默认都是最多次
# ? 是对 . 起作用的
# 意思就是 . 可以出现 0 次 李
# 可以出现一次 李.
李.* 李杰和李莲英和李二棍子 李杰和李莲英和李二棍子
# * 可以出现零次或更多次,默认是更多次
# * 是 对 . 起作用的
# . 可以出现 0 次 李
# . 可以出现无数次 李..........
李.+ 李杰和李莲英和李二棍子 李杰和李莲英和李二棍子
# + 可以出现 1 次或更多次,默认是更多次
李.{1,2} 李杰和李莲英和李二棍子 李杰和 李莲英 李二棍
# {n,m} 重复 n 次到 m 次,最少 n 次,最多 m 次
# 李.. 重复匹配 李+任意两个字符
正则小练习之字符集
李[杰莲英二棍子]* 李杰和李莲英和李二棍子 李杰 李莲英 李二棍子
# [] : 字符组,取字符组中的任意一个
# * 可以重复无数次
李[^和]* 李杰和李莲英和李二棍子 李杰 李莲英 李二棍子
[\d] 456db4 4 5 6 4
[\d]+ 456db4 456 4
# + 可以重复一次或更多
正则之非贪婪模式
- ?取消非贪婪模式
- 几个常用的非贪婪匹配,Pattern
- *? 重复任意次,但尽可能少重复
- +? 重复1次或更多次,但尽可能少重复
- ?? 重复0次或1次,但尽可能少重复
- {n,m}? 重复n到m次,但尽可能少重复
- {n,}? 重复n次以上,但尽可能少重复