php 求用正则匹配中文以及标点符号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 求用正则匹配中文以及标点符号相关的知识,希望对你有一定的参考价值。

你指的连续,那么就要求是两个以上了:

1

$reg ='/[\x80-\xff]2,/';

这个正则是表示匹配两个字节以上的多字节字符(多字节字符通常高位为 1)。
参考技术A preg_match('/[\u4e00-\u9fa5\pP]+/u',text);追问

谢谢!但是好像报错了
preg_match(): Compilation failed: PCRE does not support \L, \l, \Nname, \U, or \u at offset 2

追答

preg_match('/[\x4e00-\x9fa5\pP]+/u',text);

PHP 正则 空字符 / NUL字符

xnn 匹配中ASCII代码十六进制代码为nn的字符。
[x00-x7F] 匹配ASCII值从0-127的字符。
0-127表示单字节字符,也就是:数字,英文字符,半角符号,以及某些控制字符。

 

正则示例:

<?php

$test_str = ‘a‘.chr(0).‘bcdefj‘.chr(0).‘h‘;

//ASCII码中十进制 0 对应 十六进制 00
$hex_str = ‘x00‘;

$pattern =  sprintf(‘/a%s[0-9a-zA-Z]{6}%sh/‘,$hex_str,$hex_str);

preg_match_all($pattern,$test_str,$output); 
var_dump($output);


$test_str = ‘a‘.chr(31).‘bcdefj‘.chr(31).‘h‘;

//ASCII码中十进制 31 对应 十六进制 1F
$hex_str = ‘x1F‘;

$pattern =  sprintf(‘/a%s[0-9a-zA-Z]{6}%sh/‘,$hex_str,$hex_str);

preg_match_all($pattern,$test_str,$output); 
var_dump($output);

 

以上是关于php 求用正则匹配中文以及标点符号的主要内容,如果未能解决你的问题,请参考以下文章

正则匹配的中文包括中文标点符号吗?

正则匹配的中文包括中文标点符号吗?

PHP:如何匹配一系列 unicode 配对代理表情符号/表情符号?

php验证密码 必须为6-16位字母数字符号组合, 正则表达式 着急,在线等

如何使用正则表达式删除字符串中的括号符号

用于匹配空格或标点符号和非字母数字的正则表达式