[PHP] 正则表达式

正则表达式是一种描述字符串结构的语法规则,是一个特定的格式化模式。

grep:最初是ED编辑器中的一条命令,用来显示文件中特定的内容,后来成为一个独立的工具grep.

egrep:扩展的grep.

POSIX:可移植操作系统接口(Portable Operating System Interface of Vnix);

Perl:实际抽取和汇报语言(Practical Extraction and Reporting Language)

PCRE:这是兼容Perl正则表达式的一套正则引擎,其他开发人员可以将PCRE整合到自己的语言中,为用户提供丰富的正则功能。

 

一个完整的正则表达式由两部分构成,元字符和文本字符。

元字符就是具有特殊含义的字符,前面提到的"*"和"?".文本字符就是普通的文本,如字母和数字等。

PCRE风格的正则表达式一般都放在定界符"/"中间。

1.行定位符(^和$)

行定位符就是用来描述字串的边界。"^"表示行的开始,"$"表示行的结尾。

^tm 匹配以字符串开头的tm。

2.单词定界符(\b,\B)

匹配一个完整的单词:\btm\b

还有一个大写的\B,意思和\b相反。她匹配的子串不能是一个完整的单词,而是其他单词或子串的一部分。

\Btm\B

3.字符类([ ])

正则表达式是区分大小写的,如果要忽略大小写可使用方括号表达式"[ ]".只要匹配的字符出现在方括号内,即表示匹配成功。一个方括号只能匹配一个字符。

[Tt][Mm]

 

POSIX风格的预定义字符类

[:digit:]   -------   十进制数字结合,等同于[0-9]

[[:alnum:]] -----   字母和数字的集合,等同于[a-zA-Z0-9]

[[:alpha:]] ------   字母集合,等同于[a-zA-Z]

[[:blank:]] -------  空格和制表符

[[:xdigit:]] -------  十六进制数字

[[:puntc:]] ------- 特殊字符集合。包括键盘上所有的特殊字符

[[:print:]] -------- 所有的可打印字符(包括空白字符)

[[:space:]] ------ 空白字符(空格,换行符,换页符,回车符,水平制表符)

[[:upper:]] ------- 所有大写字母,[A-Z]

[[:lower:]]  ------- 所有小写字母,[a-z]

[[:cntrl:]]  --------- 控制字符

4.选择字符(|)

还有一种方法可以实现上面字符类的匹配模式,就是使用选择字符(|)

T|tM|m

使用"[]"和使用"|"的区别在于"[]"只能匹配单个字符,而"|"可以匹配任意长度的字符串

5.连字符(-)

变量的命名规则只能以字母和下划线开头。

[a-z]

6.排除字符([^])

[^a-zA-Z]:不以字母和下划线开头的变量名。

7.限定符(?* + {n,m})

对于这类重复出现字母或子串,可以使用限定符来实现匹配。

? ----- 匹配前面的字符零次或一次 ----- colou?r,该表达式可以匹配colour和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,和employee3种情况。

8.点号字符(.)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值