zoukankan      html  css  js  c++  java
  • PHP 正则表达式匹配中文字符

    例如在 MySQL 的 bin-log 文件中选取特定的数据库语句来恢复数据时,只要选出某个库的 INSERT INTO 操作(去掉了多余信息,只列出 SQL 语句)

    INSERT INTO `crm_member` (`id`,`name`) values (1,'甄士隐')
    INSERT INTO `app_member` (`id`,`name`) values (2,'dee')
    INSERT INTO `crm_member` (`id`,`name`) values (3,'emperor')
    INSERT INTO `crm_member` (`id`,`name`) values (4,'贾雨村')

    只想选出 crm_member 表的 insert 操作时,可以使用 perg_match_all 函数

    <?php
    
    header('Content-type:text/html;charset=utf-8');
    
    $content = "INSERT INTO `crm_member` (`id`,`name`) values (1,'甄士隐')
    INSERT INTO `app_member` (`id`,`name`) values (2,'dee')
    INSERT INTO `crm_member` (`id`,`name`) values (3,'emperor')
    INSERT INTO `crm_member` (`id`,`name`) values (4,'贾雨村')
    ";
    
    preg_match_all('/INSERT INTO `crm_member[ -~x{4e00}-x{9fa5}]+/u', $content, $matches);
    $str = implode(";
    ", $matches[0]);
    echo $str;

    浏览器右键查看源代码查看输出的结果:

    INSERT INTO `crm_member` (`id`,`name`) values (1,'甄士隐');
    INSERT INTO `crm_member` (`id`,`name`) values (3,'emperor');
    INSERT INTO `crm_member` (`id`,`name`) values (4,'贾雨村')

    说明:

    模式修饰符 /u:

    此修正符打开一个与perl不兼容的附加功能. 
    模式字符串被认为是utf-8的.
    这个修饰符 从unix版php 4.1.0或更高, win32版php 4.2.3开始可用.
    php 4.3.5开始检查模式的utf-8合法性.
    This modifier turns on additional functionality of PCRE that is incompatible with Perl.
    Pattern strings are treated as UTF-8.
    This modifier is available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32.
    UTF-8 validity of the pattern is checked since PHP 4.3.5.

    (参考:PHP正则表达式 /i, /s, /x,/u, /U, /A, /D, /S等模式修饰符

    [x{4e00}-x{9fa5}]

    代表匹配中文

  • 相关阅读:
    rc-local.service服务启动失败,导致rc.local中的开机启动服务不能启动
    bacula快速部署
    配置github SSH公钥登录
    快速安装zabbix
    编译安装git
    linux系统日志中出现大量systemd Starting Session ### of user root 解决
    根据屏幕高度自适应元素高度
    git+github上传与管理
    ajax简单应用
    自己常用的webstrom快捷键
  • 原文地址:https://www.cnblogs.com/dee0912/p/5345956.html
Copyright © 2011-2022 走看看