PHP中POSIX正则表达式详解

2015 年 7 月 22 日3390

php中很灵活。

今天来讲讲POSIX表达式,下面是我列出的几个重要知识点。

(1)定界符"^"和"$"分别表示开始和结束。注意,"^"一旦用上[]表示取非的匹配。

(2)POSIX量词的应用,有*、+、?、{n}和{n,}以及{n,m}

(3)方括号表达式[]如^[a-z][0-9]$能够匹配t6等

(4)预定义字符簇,如[[:alpha:]]表示大小写字母

(5)ereg_replace()和split()等的应用

以下是详细知识点:

\

用于关闭后续字符的特殊意义。有时用于反向的打开后续字符的特殊意义。

.

(点号)匹配任意单个的字符,但NULL除外。

*

匹配任意数目的字符(可以为0)。以ERE来说,此前置字符可是正则表达式,如.*代表了匹配任意字符的长度。但对于BRE而言,*置于正则表达式的第一个字符,不具任何特殊意义。

^

(脱字号)匹配出现在行首或字符串开始位置的空字符串。ERE:置于任何位置都具特殊含义;BRE:仅在正则表达式的开头具有此特殊含义。

$

匹配出现在行末的空字符串。ERE:置于任何位置都具特殊含义;BRE:仅在正则表达式的结尾具有此特殊含义。

[...]

方括号表达式,匹配方括号内的任意一字符。连字符(-)指的是连续字符的范围。^符号置于方括号里第一个字符则有反向含义:指的是匹配不在列表内(方括号 内)的任意字符。作为首字符的一个连字符或是结束方括号(]),则被视为列表的一部分。所有其他的meta字符也为列表的一部分。

以下只属于BRE:

\{n-m}

区间表达式,匹配在它之前的单个字符重现的次数区间。\{n\}指的是重复n次;\{n,\}则为至少出现n次重复,而\{n,m}为重现n至m次。

\( \)

将\(与\)间的模式存储在特殊的“保留空间”。最多可将9个独立的子模式存储在单个模式中。如\(ab\).*\1,指的是匹配于ab组合的两次重现。

\n

重复在\(与\)方括号内第n个子模式至此点的模式。n为1至9的数字,由左开始。

以下只属于ERE:

{n,m}

与先前提及的BRE的\{n,m\}一样,只不过方括号前没有反斜杠。

+

匹配前面正则表达式的1个或多个实例

?

匹配前面正则表达式的0个或1个实例

|

匹配于|符号前或后的正则表达式。

( )

匹配于方括号括起来的正则表达式群。

POSIX方括号表达式:

1、字符集

[:与:]

2、排序符号

[.与.]

3、等价字符集

[=与=]

具体如下:

[:alnum:]

数字字符

[:alpha:]

字母字符

[:blank:]

空格与定位字符

[:cntrl:]

控制字符

[:digit:]

数字字符

[:graph:]

非空格字符

[:lower:]

小写字母字符

[:print:]

可显示的字符

[:punct:]

标点符号字符

[:space:]

空白字符

[:upper:]

大些字母字符

[:xdigit:]

十六进制数字

php中正则表达式是一个很值得研究的东西,当然它的功能很强大。

搜索相关文章:

(51自学网整理)

0 0