一.正则表达式的介绍与作用:
我们在处理数据的时候,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的语法。
正则表达式的主要作用是分割、匹配、查找、替换。
正则表达式不仅可以帮助我们完成一些通过函数无法实现的工作,还可以帮助我们减轻很多工作量。
二.正则表达式的类型:
以perl语言为基础的正则,比较规范,执行效率更高,有起始符和结束符
以Posix为基础的正则
三.正则表达式中的元素:
1.原子(普通字符:[a-zA-Z0-9],原子表,转义字符)
a. a-z A-Z 0-9 //常见的字符
b. (abc) (xyz) //用圆括号包含起来的单元符,把abc,xyz看成一个模块来匹配
c. [abc] [^abc] //用方括号包含的原子表,原子表中的^代表排除或者相反内容。与b.相反
d. 转义字符:\d 包含所有数字[0-9] \B 除所有数字外[^0-9] \w 包含所有英文字符[a-zA-Z] \W 除所有英文字符外[^a-zA-Z] \s 包含空白区域如回车,换行,分页等[\f\n\r]
2.元字符(有特殊功能的字符:".","#","$")
* 匹配前一个内容的0次1次或多次
. 匹配内容的0次1次或多次,但不包含回车换行
+ 匹配前一个内容的1次或多次
?匹配前一个内容的0次或1次
| 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配)
^ 匹配字符串首部内容
$ 匹配字符串尾部内容
\b 匹配单词边界,边界可以是空格或者特殊符合
\B 匹配除带单词边界意外内容
{m} 匹配前一个内容的重复次数为M次
{m,} 匹配前一个内容的重复次数大于等于M次
{m,n} 匹配前一个内容的重复次数M次到N次
( ) 合并整体匹配,并放入内存,可使用\1 \2…依次获取
. 匹配内容的0次1次或多次,但不包含回车换行
+ 匹配前一个内容的1次或多次
?匹配前一个内容的0次或1次
| 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配)
^ 匹配字符串首部内容
$ 匹配字符串尾部内容
\b 匹配单词边界,边界可以是空格或者特殊符合
\B 匹配除带单词边界意外内容
{m} 匹配前一个内容的重复次数为M次
{m,} 匹配前一个内容的重复次数大于等于M次
{m,n} 匹配前一个内容的重复次数M次到N次
( ) 合并整体匹配,并放入内存,可使用\1 \2…依次获取
/ 正则 / U
4.运算优先顺序