正则表达式
世界三大难懂
医生的处方、道士的符、码农的正则
世界三大难题
欧洲的债务、非洲的难民、中国的高地
早上吃什么、中午吃什么、晚上吃什么
一、使用场景
1、手机号、邮箱的验证
2、url判断、配置文件、字符串的操作
二、使用原则
1、能不用就不用、效率低,
2、能用字符串函数就用函数
三、正则的组成
定界符、原子、元字符、模式修正符
【注】 1、正则表达式是从左到右完整匹配
2、正则表达式默认是贪婪匹配
1、定界符 是正则表达式的边界
【注】 1、定界符不能使用0-9、a-z、A-Z、\、空格
2、通常使用 '/' 作为正则的定界符
2、原子 是正则表达式的最小单位 (不可再分割)
\d: 0-9
\D: 除了0-9
\w: 字 包括 0-9 a-z A-Z _
\W: 除了 0-9 a-z A-Z _
\s: 空白字符 空格 \n \t \r
\S: 除了空白字符
\b: 词边界
\B: 非词边界
[]: 原子列表,会匹配中间的任意一个原子
[^]: 取反 写在原子列表最前面是取反的意思
. : 除了\n意外的任意字符
3、元字符 是用来修饰原子的 不能单独存在
*: 任意次
+: 至少一次
?:可有可无 最多一次
{}: 指定次数
{20} 指定20次
{3,5} 指定3-5次
{3,} 至少3次
{0,3} 0-3次
^: 以指定原子开头
\A: 同上
$: 以指定的原子结束
\Z: 同上
|: 或
(): 用来限制优先级、括号里表示一个整体 子模式(了解)
4、模式修正符 用来给正则表达式修饰、限制
【注】 模式修正符必须写在正则表达式之后
i: 忽略大小写
m: 多行匹配
s: 能让. 匹配到\n
x: 忽略正则表达式当中的空格
A: 作用与\A和^一样
U: 对正则贪婪模式取反
5、组合拳
.+?: 取消贪婪匹配 只匹配一个
.*?: 取消贪婪匹配 匹配出来0个字符
【注】
1、当要匹配的字符是正则里的特殊字符 需要转义 \
2、当需要匹配 \ 需要前面 3-4个 \
四、匹配练习
1、手机号
2、邮箱
3、URL
网友评论