php正则表式

在php中有两套正则表达式标准即:由PCRE(Perl Compatible Regular Expression)库提供的,使用“preg_”为前缀命名的函数和由POSIX(Portable Operating System Interface of Unix )扩展提供的,使用以“ereg_”为前缀命名的函数。但是POSIX的正则函数库,自PHP 5.3以后,就不在推荐使用,从PHP6以后,就将被移除。

PCRE是Perl兼容的意思,它通常是将正则表达式放在两个"/"之间。

常用的元字符(meta-character)为:

\A(匹配串首原子);\Z(匹配串尾原子);以下省略格式

b:匹配串单词边界:/\bis/匹配首字为is的单词,/is\b/匹配尾字为is的单词。B为匹配边界字符不是指定的字符的单词。

d:匹配0-9等价于[0-9]。D:匹配不是0-9的[^0-9]。

w:匹配英文字符,数字,或下划线,等价于[0-9a-zA-Z]。W与其相反

s:匹配空白字符,[\t\f\v]。S与其相反

f:匹配一个换页符等价于\x0c或\cL,换行符\x0a或者\cJ,回车符\x0d或者\cM

t:匹配制表符等价于\x09或者\cl;v:匹配垂直制表符等价于\x0b或者\ck

\oNN匹配一个八进制数字;\xNN匹配一个十六进制的数字;\cC匹配一个控制字符

下面补充介绍下模式修正符(pattern modifiers)

i:可同时匹配大小写字母;M:将字符串看成多行;S:将字符串视为单行,换行符作普通字符使"."匹配任何字符;

X:空白字符忽略不计;U:匹配到最近的字符串;e:将替换的字符串作为表达使用。

例如:/apple/i配匹Apple

PCRE的单元模式:

//1提取第一位的属性,解释如下:

/^\d{2} ([\W])\d{2}\\1\d{4}$/匹配“12-31-2006”、“09/27/1996”、“86 01 4321”等字符串。但上述正则表达式不匹配“12/34-5678”的格式。这是因为模式“[\W]”的结果“/”已经被存储。下个位置“\1”引用 时,其匹配模式也是字符“/”。

当不需要存储匹配结果时使用非存储模式单元“(?:)”

例如:

/(?:a|b|c)(D|E|F)\\1g/ 将匹配“aEEg”。在一些正则表达式中,使用非存储模式单元是必要的。否则,需要改变其后引用的顺序。上例还可以写成/(a|b|c)(C|E|F)\2g/。

转载于:https://www.cnblogs.com/dachmx/articles/1965512.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值