• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP中PCRE正则解析代码详解

    一、前言

    前面的博客里,有对字符集的解析。这里就不是字符集的事儿了,在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 正则去掉p> /p> 空格  与p>br/>/p>
    • php正则表达式使用方法整理集合
    • PHP常用正则表达式精选(推荐)
    • PHP正则表达式处理函数(PCRE 函数)实例小结
    • PHP正则表达式笔记与实例详解
    • PHP正则判断一个变量是否为正整数的方法
    • PHP正则验证字符串是否为数字的两种方法并附常用正则
    • PHP正则匹配到2个字符串之间的内容方法
    • PHP正则解析多重循环模板示例
    • PHP正则过滤处理微信昵称中emoji字符的方法
    • PHP实现正则匹配所有括号中的内容
    • PHP使用正则表达式实现过滤非法字符串功能示例
    • PHP简单实现正则匹配省市区的方法
    • PHP实现正则表达式分组捕获操作示例
    • phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
    • PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示功能
    • 史上最全的PHP正则表达式(手机号需要加上177-***)
    • PHP正则之正向预查与反向预查讲解与实例
    上一篇:通过PHP设置BugFree获取邮箱通知
    下一篇:YII框架实现自定义第三方扩展操作示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    PHP中PCRE正则解析代码详解 PHP,中,PCRE,正则,解析,代码,