计算机网络/计算机科学与应用/系统/运维/开发

php 正则表达式

正则表达式

正则表达式是一种描述字符串结构的语法规则,

是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串


正则表达式语法规则

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


元字符就是具有特殊含义的字符,如前面提到的“*”和“?”

文本字符就是普通的文本,如字母和数字等


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


1、行定位符 ^和 $

行定位符就是用来描述字串的边界。

“^”表示行的开始;“$”表示行的结尾

^tm :表示要匹配字串tm的开始位置是行头 如tm equal

tm$ : 表示要匹配字符串tm结尾的 如 equaltm则匹配

如果要匹配的字串可以出现在字符串的任意部分,

那么可以直接写成 tm


2、单词分界符(\b、\B)

现在需要匹配的是单词tm,而不是单词的一部分

可以使用单词分界符“\b”,表示要查找的字串为一个完整的单词

如:\btm\b 

大写的“\B”,意思和“\b”相反

匹配的字串不能是一个完整的单词,而是其他单词或字串的一部分

如:\Btm\B 


3、字符类([ ])

正则表达式是区分大小写的

如果要忽略大小写可使用方括号表达式“[]”

只要匹配的字符出现在方括号内,即可表示匹配成功。

注:一个方括号只能匹配一个字符

例如,要匹配的字符串tm不区分大小写 [Tt][Mm]

可匹配字串tm的所有写法


4、选择字符(|)

使用选择字符(|)。该字符可以理解为“或”

(T|t)(M|m)

该表达式的意思是以字母T或t开头,后面接一个字母M或m


说明:

使用“[]”和使用“|”的区别在于,

“[]”只能匹配单个字符,

而“|”可以匹配任意长度的字串。

如果不怕麻烦,上例还可以写为

TM|tm|Tm|tM


5、连字符(-)

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

如果要使用正则表达式来匹配变量名的第一个字母

[a,b,c,d....A,B,C,D...]非常麻烦


正则表达式提供了连字符“-”来解决这个问题。

连字符可以表示字符的范围

[a-zA-Z]


6、排除字符([^])

匹配不符合命名规则的变量,

正则表达式提供了“^”字符

表示行的开始

[^a-zA-Z]

匹配的就是不以字母和下画线开头的变量名


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

8、点号字符(.)

9、转义字符(\)

10、反斜线(\)

11、括号字符(())

12、反向引用

13、模式修饰符

模式修饰符的作用是设定模式,

也就是规定正则表达式应该如何解释和应用。

不同的语言都有自己的模式设置


php 正则表达式

读书和赚钱都是一个人最好的修行,前者使人不惑,后者使人不屈,二者结合,便可不困于世,不流于俗

评论

^