php正则中文字符
1. php正则表达式匹配一段中文,中间有换行,空白,应该怎么写
有多种处理方法:
1、使用[sS]匹配任意字符,而不是使用“.”
2、使用s单行修饰模式,例:$pattern='#abc.*?def#s';//能匹配abc换行def
3、使用s*匹配换行和空格,php里s能匹配空白字符,含换行
php里的中文使用[x7f-xff]表示,因此,使用正则:
$pattern='#[x7f-xff]+(?:s*[x7f-xff]+)*#';即可
2. php 求用正则匹配中文以及标点符号
你指的连续,那么就要求是两个以上了:
1
$reg ='/[\x80-\xff]{2,}/';
这个正则是表示匹配两个字节以上的多字节字符(多字节字符通常高位为 1)。
3. php中如何用正则表达式匹配中文字符呢
php中匹配一个或多个中文字符(包含简体和繁体中文字符)的正则表达式如下:/[[b]\x{4e00}-\x{9fa5}]+/注意:php中正则表达式的16进制是以
\x
开头的。
4. php正则匹配中文字符 排除符号
你指的连续,那么就要求是两个以上了:
$reg='/[x80-xff]{2,}/';
这个正则是表示匹配两个字节以上的多字节字符(多字节字符通常高位为 1)。
5. PHP正则表达式中怎么匹配汉字啊 - 技术问答
匹配中文字符的正则表达式:
[\\u4e00-\\u9fa5]匹配双字节字符(包括汉字在内):[^\\x00-\\xff]应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){return
this.replace([^\\x00-\\xff]/g,\"aa\").length;}匹配空行的正则表达式:\\n[\\s|
]*\\r匹配HTML标记的正则表达式:/.*|/匹配首尾空格的正则表达式:(^\\s*)|(\\s*$)
6. PHP,求匹配该字符串的正则表达式
<?php
//$str = '比如“大众汽车”,我想从一段中文文字之中匹配出“大众汽车”四个字,如果有,返回true,如果没有,返回false';
$str = '这句只有东风本田';
if(preg_match("|大众汽车|is",$str))
{
echo "有大众汽车";
}
else
{
echo "没有大众汽车";
}
?>
7. PHP 正则替换中文字符 难度极高
这个用正则恐怕不,倒不如用 字符串搜索 一个一个来 然后用ord判断自负按ascii码这里有一个问题就是一个汉字算两个字符,所以遇到汉字,计数要加二
8. php正则匹配中文乱码问题
当然乱码啦,一个汉字在php里是三个字符,你这样直接用.去匹配任意字符的话,三个.才等于一个汉字。你把一个汉字给截取掉了,当然乱码了,不信你把你的0,10改成0,11。就不乱码的,而且只匹配出两个汉字。汉字不是这样去匹配的,有专门匹配汉字的正则,
9. PHP中文文字正则替换,并将匹配的中文文字加粗
<?php
$str = "中文123美丽abc开心。?我们";
echo preg_replace('#(?:(?![,。?])[xC0-xFF][x80-xBF]+)+#','<b>$0</b>',$str);
//(?:[xC0-xFF][x80-xBF]+) 单个中文字符,不需要引用,因此使用?:
//(?![,。?]) 排除中文标点符号,这里要写入中文标点
//(?:(?![,。?])[xC0-xFF][x80-xBF]+) 排除中文标点符号后的中文字符
//(?:[xC0-xFF][x80-xBF]+)+ 1个以上的中文字符
//结果 <b>中文</b>123<b>美丽</b>abc<b>开心。?我们</b>
?>
10. php正则判断字符串是否含有中文
functionchk_cn($str){
if(preg_match('|[x{4e00}-x{9fa5}]+?|u',$str)){
returntrue;
}
returnfalse;
}
调用这个 函数,返回true则是含有中文,false则无中文。
另外,x{4e00}-x{9fa5} 这个范围我也不太确定是不是包含所有的中文范围,没有认真研究它的取值范围。