101 php 正则表达式

正则表达式

1.正则历史

   grep -> egrep -> POSIX (Portable Operation System Interface of Vnix )->  Perl (Practical Extraction and Reporting Language) -> PCRE


  正则表达式定界符 "/"


2.行定位符( ^ )和 ( $ )

^表示开始,$表示结束

^tm 匹配 tm开头的字符串

tm$ 匹配tm 结束的字符串

tm 匹配任意位置


3.单词定界符 ( \b \B )

\btm\b   匹配包含tm的完整单词

\Btm\B  匹配不是完整单词且包含tm的字符串


4.字符类( [ ] )

正则区分大小写,如果要忽略大小写需要加"[ ]",一个方括号匹配一个字符

[Tt][Mm] 匹配不区分大小写的tm


(POSIX和PCRE略有不同)其他预定义的字符类:

[:digit:]           匹配十进制数字集合,等同与[0~9]

[[: alnum:]]   匹配字母和数字集合 等同[a-zA-Z0-0]

[:alpha:]       匹配字母集合 等同[a-zA-Z]

[:blank:]       匹配空格和制表符

[:xdigit:]       匹配十六进制数字

[:punct:]       匹配特殊字符集 ~!@#$%等

[:print:]         匹配所有可打印字符 包括空白

[:space:]      匹配空白字符

[:graph:]      匹配所有可打印字符 不包括空白

[:upper:]     [A-Z]

[:lower:]      [a-z]

[:cntrl:]        控制字符


注:“ [ ] ” 匹配单字符    “|” 匹配字符串 如:

tm|TM|tM|Tm


5.连字符(-) 表示字符范围
[a-z]  


6.排除字符( [^] )
[ ^a-zA-Z ] 不以字母开头的变量

7.限定符 (?* + {n,m}) 匹配重复出现的字母或者字符串
? 匹配前面字符零次或多次       colou?r    匹配colour 或者color
+ 匹配前面的字符一次或多次   go+gle     gogle到gooo...gle
* 匹配前面字符零次或多次       go*gle      ggle到gooo...gle
{n} 匹配前面的字符n次             go{2}gle   google
{n,}匹配前面的字符至少n次      go{2,}gle  google 到 gooo...gle
{n,m}匹配前面字符最少n 最多m次  employe{0.2}    emply  emplye  emplyee

8.点号字符(.) 匹配换行之外的任意一个字符
^ s.t $    匹配s开头t结尾,中间有一个字母的单词
^ s.r*t$    匹配s开头 t结尾,第三个字母为r的单词

9.转义 不可以打印字符(\)
[0,9]{1,3}(\.[0-9]{1,3}){3}     IP地址
\d 十进制数
\b 单词定界符

10.括号 (  ()  )
(thir|four)th    thirth fourth

11.反向引用
([a-z])([A-Z])\1\2
(?P<fir>[a-z])(?P<sec>[A-Z])(?P=fir)(?p=sec)    定义并反向引用

12.模式修饰

(?i)忽略大小写

 (?x)忽略空白字符













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值