PHP中PCRE正则解析代码详解


Posted in PHP onApril 26, 2019

一、前言

前面的博客里,有对字符集的解析。这里就不是字符集的事儿了,在PHP中很多函数的处理默认是unicode中的UTF-8编码格式。那么废话不多说,直接开始正题。

二、PHP函数mb_split解析

<?php
$preg_strings = '测、试、一、下';
$preg_str = mb_split('、', $preg_strings);
print_r($preg_str);

输出效果

Array(

  [0] => 测

  [1] => 试

  [2] => 一

  [3] => 下)

此函数默认底层解析,以UTF-8的编码格式解析。以分隔符(、)的UNICODE的16进制码点分割字符$preg_strings。

三、PHP函数preg_split解析

分割字符串“测试一下”

<?php
$strings = '测试一下';
$mb_arr = preg_split('//u', $strings, -1, PREG_SPLIT_NO_EMPTY);
print_r($mb_arr);

打印结果如下:

Array(

  [0] => 测

  [1] => 试

  [2] => 一

  [3] => 下

)

四、PCRE中的/u解析

在PHP中,正则的定界符可以为#、%、/等等。

在一个正则中有时后面会有些修饰符。那么他们都是什么意思呢?

比如:

%[\x{4e00}-\x{9fa5}]+%u

其中后面的修饰符u代码表以正则匹配以utf-8的编码格式匹配。

例子一:

<?php
 $strings = '测试一下';
 $is_true = preg_match_all('%[\x{4e00}-\x{9fa5}]+%u', $strings, $match);
var_dump($is_true);

打印结果如下:

Array(

  [0] => Array

    (

      [0] => 测试一下

    )

)

这里的[\x{4e00}-\x{9fa5}]是什么意思呢?

在PHP正则中\x用来表示16进制。

中文的UNICODE码点在4E00 - 9FFF (这里说的都是16进制)

所以,正则匹配写法就是区间[],[\x{4E00}-\x{9FFF}]

这两个正则的效果都是一样的。

PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(3)
Oct 09 PHP
PHP 文件扩展名 获取函数
Jun 03 PHP
php算开始时间到过期时间的相隔的天数
Jan 12 PHP
色色整理的PHP面试题集锦
Mar 08 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
Apr 28 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
PHPUnit安装及使用示例
Oct 29 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
详解php中生成标准uuid(guid)的方法
Apr 28 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 #PHP
PHP实现字符串的全排列详解
Apr 24 #PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 #PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 #PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 #PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
Apr 23 #PHP
PHP信号处理机制的操作代码讲解
Apr 19 #PHP
You might like
php顺序查找和二分查找示例
2014/03/27 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
Maps Javascript
2007/01/22 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
用webAPI实现图片放大镜效果
2020/11/23 Javascript
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
Python中用altzone()方法处理时区的教程
2015/05/22 Python
python购物车程序简单代码
2018/04/18 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
实习生自荐信范文
2013/11/13 职场文书
小学教师国培感言
2014/02/08 职场文书
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
销售工作决心书
2015/02/04 职场文书
工作简报格式范文
2015/07/21 职场文书
python实现手机推送 代码也就10行左右
2022/04/12 Python