关于php正则使用的一些细节问题

前几日,与部门同事分享了正则处理中一些经常容易忽略的细节,此记录为当时的部分内容:

1.\w是否匹配汉字?

\w 仅仅匹配字母、数字、下划线,不能匹配汉字。

2.\s匹配空白符,那么什么是空白符 ?

空白符包括:换页符(\f),回车符(\n),换行符(\r),制表符(\t),垂直制表符(\v)。

3.\b匹配单词的边界,那么什么算是单词的边界 ?

非\w 字符的都算字符的边界,即只有\w内容才算做单词的一部分。

4.正则表达式:/[\x{4e00}-\x{9fa5}]+/u 能匹配所有汉字吗?

仅能匹配unicode 编码的ucs-2格式的 汉字。也就是不能匹配:gbk编码内容,ucs-4 的汉字(例如:𫠝).

5.php是否正则: 支持平衡组/递归树 语法?

不支持,可以用php5.6以后才有的 “递归匹配”解决此类问题。

作者: 白金马桶

天道酬勤...

发表评论