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(";\r\n", $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.
(参考:)
[\x{4e00}-\x{9fa5}]
代表匹配中⽂

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。