正则表达式
正则表达式
什么是正则表达式:
能够表示一定规则的字符串就是正则表达式.
正则表达式的作用:
主要用于判断字符是否符合规范,或者替换字符使用
网页小偷,采集器....
正则表达式的学习流程:
正则语法的学习
正则函数的学习
没有正则函数的正则表达式就是一个字符串!
正则的组成部分:
1.正则定界符
2.原子
3.元字符
4.模式修正符
正则表达式的定界符:
习惯上定界符用 /
除了数字,字母,空格反斜线等字符之外的特殊字符都可以作为定界符,推荐使用 /(因为其他语言都用这个符号)
正则表达式的定界符有2套:
最外层是字符串边界符
内层还有一个正则定界符
正则的原子:
组成正则表达式的最小单位就是原子!
1.,所有的可见字符都是原子 A/0/&/你/妹...
2.所有不可见字符也都是原子, 空格 \n \r \t ..
3.正则转移字符原子
\d 0-9
\D 除了0-9
\s 空白字符
\S 可见字符
\w 0-9a-zA-Z_
\W 除了0-9a-zA-Z_
正则的元字符:(原子修饰符)
[] 原子列表
在[]中填写所有可以使用的原子,表示[]中的任意一个原子都可以,如果是连续的ASCII字符 可以使用-连接开始和结束字符
[^原子] 表示除了原子列表中的任意原子都可以
+ 1个以上的原子
* 0个以上的原子
? 0个或1个
{m,n} m-n个原子
{m,} 表m个以上的原子
{m} 必须是m个原子
^ 必须以指定的字符开头
$ 必须以指定的字符结尾
^原子$ 精确匹配某个字符
| 表示或关系的原子取舍(注意运算优先级)
\b 表示词边界
\B 表示非词边界
() 括号元字符
1.视为一个原子
2.改变优先级
3.作为模式单元使用,方便反向引用
| 表示或关系的原子取舍(注意运算优先级)
注意:该元字符的运算优先级没有字符串之间的关联优先级高,所以如果想在2个原子之间进行选择,需要使用()改变优先级.
|元字符配合 开始和结束符号,效果不再是精确匹配
\b 表示词边界
表示词边界的字符:
空格、字符串的开始和结束或者特殊字符.
\B 表示非词边界
表示除了此边界之外的字符.一般只英文字母和数字
() 括号元字符
1.视为一个原子,将多个原子放在一起视为一个原子使用,方便使用其他元字符
2.改变优先级,在进行|运算时 经常使用
3.将括号中匹配的内容暂存于内存,方便后期使用
4.作为模式单元使用,方便反向引用,需要配合函数
5.注意:如果只想使用运算优先级或者视为一个原子的功能,可以再()内部最前面使用?:的格式 取消存于内存的功能
. 表示任意字符的元字符,除了\n 在s修正符之下可以匹配
模式修正符:
i 大小设置 忽略大小写
x 忽略正则表达式中的空白
s 使得.能够匹配\n
m 视为多行处理模式,配合^和$使用 ^可以匹配每个行的开头,$可以匹配每个行的结束.
e 逆向引用模式
S 加速匹配模式 看看就行
U 改变贪婪模式
正则的函数: