加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 22:10:02 所属栏目:百科 来源:网络整理
导读:以下是php正则表达式 正则表达式 一、行定位符 ^表达行的开始 要匹配表达式必须在开始 ^tm $代表行的结尾 要匹配表达式必须在结尾如:tm$ 二、单词定界符(b、B) 要查找单词tm,而不是整个单词中包含的tm就使用b B意思和b相反。是匹配字串不能是一个完整
以下是php正则表达式
正则表达式
一、行定位符
^表达行的开始 要匹配表达式必须在开始 ^tm
$代表行的结尾 要匹配表达式必须在结尾如:tm$
二、单词定界符(b、B)
要查找单词tm,而不是整个单词中包含的tm就使用b
B意思和b相反。是匹配字串不能是一个完整的单词
三、字符类([])
1.在方括号里的字符是不区分大小写
2.一个方括号只能匹配一个字符
POSIX预定义字符
[:digit:]十进制数字集合。等同于[0-9]
[[:alnum:]]字母和数字的集合。等同于[a-zA-Z0-9]
[[:alpha:]]字母集合。等同于[a-zA-Z]
[[:blank:]]空格和制表符
[[:xdigit:]]十六进制数字
[[:punct:]]特殊字符集合。包括键盘上的所有特殊字符,如!@#$?等
[[:print:]]所有的可打印字符(包括空白字符)
[[:space:]]空白字符(空格、换行符、换页符、回车符、水平制表符)
[[:graph:]]所有的可打印字符(不包括空白字符)
[[:upper:]]所有大写字母,[A-Z]
[[:lower:]]所有小写字母,[a-z]
[[:cntrl:]]控制字符
四、选择字符(|)
格式为T|tM|m
|可以匹配任何长度的字串如:TM|tm|TM|tm
五、连字符(-)
[a-zA-Z]
六、排除字符([^])
将^放入方括号里代表排除。如:[^a-z_A-Z]
七、限定符(?*+{n,m})
?替换前面的字符零次或一次 如colou?r匹配出colou和color
+替换前面的字符一次或多次 如go+gle匹配出gogle到goo ····· gle
*替换前面的字符零次或多次 如go*gle匹配出ggle到goo ····· gle
{n}匹配前面的字符n次, 如go{2}gle,匹配出google
{n,}匹配前面的字符最少n次, 如go{n,}gle,匹配出google到goo·····gle
{n,m}匹配前面的字符最少n次,最多m次,如employe{0,2},匹配出employ、employe和employee
八、点号字符(.)
如要匹配出以s开头的,t结尾的单词就可以这样写,格式为^s.t$
如要匹配出以s开头的,中间为t的,最后一个为r的,可以这样写^s.t.*r$
九、转义字符()
十、反斜线
反斜线显示的不可打印字符
a 警报,即ASCII中的<BEL>字符(0x07)
b 退格,即ASCII中的<BS>字符(0xo8)。注意,在php中只有在中括号([])里使用才表示退格
e Escape, 即ASCII中的<ESC>字符(0x1B)
f 换页符, 即ASCII中的<FF>字符(0x0C)
n 换行符, 即ASCII中的<LF>字符(0x0A)
r 回车符, 即ASCII中的<CR>字符(0x0D)
t 水平制表符, 即ASCII中的<HT>字符(0x09)
xhh 十六进制代码
ddd八进制代码
cx 即control-x的编写,匹配由x指明的控制字符,其中x是任意字符
预定义字符集
d 任意一个十进制数字,相当于[0-9]
D 任意一个非十进制数字
s 任意一个空白字符(空格,换行符,换页符,回车符,水平制表符),相当于[fnrt]
S 任意一个非空白字符
w 任意一个单词字符,相当于[a-zA-Z0-9]
W任意一个非单词字符
定义断言
b 单词定界符,用来匹配字符串中的某些位置,b是以统一的定界符来匹配
B非单词定界符序列
A总是能够匹配待搜索文本的起始位置
Z表示在未指定任何模式下匹配的字符,通常是字符串的末尾位置,或者是在字符串末尾的换行符之前的位置
z值匹配字符串的末尾,而不考虑任何换行符
G当前匹配的起始位置

十一、括号字符(())
作用一、表达式为(thir|four)th 可以匹配出thirth和fourth
作用二、就是分组,也就是字表达式,如(.[0-9{1,3}{3}])就是对分组进行重复操作

十二、反向引用
先将字母it作用分组,然后再后面加上"1",格式为(it)1
要使用多个分组,可以用"1","2"来表示每个分组(顺序是从左到右)。如([a-z])(A-Z)12

除了使用数字分组外,也可以指定分组名称。(?P<subname>···) 尖括号
想反向引用分组,(?P=subname) 等号
例子(?P<fir>[a-z])(?P<sec>[A-Z])(?P=fir)(?P=sec)

十三、模式修饰符
i (?i)···(?-i)、(?i:···)忽略大小写模式
m (?m) ···(?-m)、(?m:···) 多文本模式,即字串内部有多个换行符时,影响"^"和"$"的匹配
s (?s) ···(?-s)、(?s:···) 单文本模式。在此模式下,元字符点号(.)可以匹配还行符。其他模式则不能匹配换行符
x (?x) ···(?-x)、(?x:···) 忽略空白字符
可以写在正则表达式外和内。如忽略大小写模式,写成/tm/i、(?i)tm(?-i)和(?i:tm)三种格式

偏移量 就是从同一个标准起开始算起的不同的那个数量就叫基准处的偏移量
/是正则表达式分界符,两个/里面的内容是正则表达式,而后面的i说明忽略大小写。
另外,不是/b,而是b才是单词分界符。
U表示不要贪婪匹配

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读