前几日,与部门同事分享了正则处理中一些经常容易忽略的细节,此记录为当时的部分内容:
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以后才有的 “递归匹配”解决此类问题。