PHP正则表达式速度入门
晚上上phpchina下了最新的PHPer杂志, 看了其中的字符串专题之正则表达式集锦, 感觉入门写的非常不错, 摘录过来了.
本文摘自PHPer第15期, 作者李俊鹏
为了速度,直接从实例入手(这并不是一个完整处理方法, 纯粹是个实例):
/^[[:alnum:]][a-z0-9_\.]*@[a-z0-9]+\.[a-z]{2,4}$/i
1. 首先注意最后的两个字符: “/i” 表示该匹配不区分大小写, 而最开头的”/”表示内容, 同样的如果没有使用”/i”也可以使用”/”结束.
2.接着去掉”/i”得到
/^[[:alnum:]][a-z0-9_\.]*@[a-z0-9]+\.[a-z]{2,4}$
我们注意开头和结尾, 即”^”和”$”, “^”表示一个匹配的开始, “$”表示一个匹配的结束.
3. [[:alnum:]]匹配字母或数字, 而”\w”表示匹配大小写字母、数字以及下划线.
4. [a-z0-9_\.]*表示26个字母、10个数字、下划线以及句点出现任意次. 其中”*”表示前面的匹配出现任意次, 类似的有”+”表示出现至少一次, “?”表示出现至多一次.
5. “@”即表示此处匹配一个”@”.
6. [a-z0-9]+表示出现最少一次的字母或者数字.
7. “\.”表示此处匹配一个句点, 由于句点”.”表示匹配除unicode行终止符外任意单个字符,所以需要转义,类似的有”\{”、”\["、"\|"等. 比如c.t匹配cat、cet、cct等.
8. [a-z]{2,4}表示出现2-4次的字母, 类似的有{1}表示出现一次的匹配, {3,}表示出现至少3次的匹配. 第8点只有这三种格式.
入门结束.
Recent Comments