定义:一种匹配字符串的规则。
作用范围:只能用于处理字符串。
正则表达式能做什么?
A.可以制定一个规则
1、来确认某一个字符串是否符合规则
2、从大段的字符串中找到符合规则的内容
B.程序领域
登录注册页的表单验证
爬虫
C.自动化开发
日志开发
元字符
[ ] 字符组 [0-9] = d
[a-z] [A-Z]
[0-9a-zA-Z] 不能倒着写
s 空白符 (空格、回车、制表符)
S 匹配非空白
d 匹配所有的数字
D 匹配所有的非数字
w 匹配数字字母下划线
W 匹配所有非数字字母下划线
制表符
换行符
[dD] [wW] [sS] 都表示所有
[^a] 匹配除了a以外的其他
^ 匹配字符串的开始
$ 匹配字符串的结尾
a|b 匹配 a 或 b 前边放的是长的,后边是短的 比如 abc | ab 而不能是 ab | abc
. 匹配除了换行符以外的所有
量词
? 匹配0次 或 1 次
+ 匹配1次或多次
* 匹配0次或多次
{n} {n,} {n,m}
() 表示分组 将括号里的内容看成一个整体。
贪婪匹配
在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配
d{2} 匹配 2 个 数字
d{2,} 匹配最少 2 个 数字 默认到正无穷
d{2,5} 匹配2个至5个数字 默认从大的开始计算
回朔算法 每个字符从前往后匹配,匹配不到从后往前匹配,匹配到就结束。
量词后边+ ? 表示结束贪婪匹配采取惰性匹配,匹配尽可能短的。
+?
*?
??
{n}?
.*?x 表示匹配任意字符,直到找到一个x