php 正则对于中文汉字字符的提取

    正则是个好东西 正则不光可以对英语字符 特殊字符进行提取 对于中文字符 日语字符等等都可以提取 再也不要用(.*?)来匹配了 而且 也不准确!

放在例子先:取出下面字符中的所有中文字符:

$str = "这%里是^测&试*中$心,欢.迎e你4的6到k来,我r们a呜呜呜we这y里w安安生生et一ef直在努力gr着找寻啊啊最佳gr的伙伴,希望您的$$%加盟可以@推动他们GH团队高速发展!";
$code = "/[".chr(0xa1)."-".chr(0xff)."]+/";
preg_match_all($code,$str, $arr); //GB2312汉字字母数字下划线正则表达式
print_r($arr);

取出结果如下:

需要注意的这个是GBK的

下面再给出一个utf8的案例:

if (preg_match(‘/^[\x{4e00}-\x{9fa5}]+$/u‘, ‘中华人民共和国‘)){
echo ‘全是汉字‘;
}else{
echo ‘不全是汉字‘;
}
// 打印出 "全是汉字"

if (preg_match(‘/^[\x{4e00}-\x{9fa5}]+$/u‘, ‘中国 china‘)){
echo ‘全是汉字‘;
}else{
echo ‘不全是汉字‘;
}
//打印出"不全是汉字",
$str="这%里是^测&试*中$心,欢.迎e你4的6到k来";
$code=‘/^[\x{4e00}-\x{9fa5}]+$/u‘;

preg_match_all($code,$str,$arr);
//print_r($arr);
时间: 2024-10-14 16:42:19

php 正则对于中文汉字字符的提取的相关文章

PHP正则匹配中文汉字注意

preg_match('/^[a-zA-Z\x{4e00}-\x{9fa5}]+$/u', $str) 如上,是匹配字母或者汉字的,一定要在后面加模式修饰符 u , 不然就出错! u (PCRE_UTF8) 此修正符打开一个与 perl 不兼容的附加功能. 模式字符串被认为是utf-8的. 这个修饰符 从 unix 版php 4.1.0 或更高,win32版 php 4.2.3 开始可用. php 4.3.5 开始检查模式的 utf-8 合法性. utf8格式的匹配模式字符串必须要使用  u 修

PHP正则匹配中文汉字会得到?

preg_match('/^[a-zA-Z\x{4e00}-\x{9fa5}]+$/u', $str) 原文地址:https://www.cnblogs.com/wdw31210/p/11230550.html

用C#生成随机中文汉字验证码的基本原理

前几天去申请免费QQ号码,突然发现申请表单中的验证码内容换成了中文,这叫真叫我大跌眼镜感到好笑,Moper上的猫儿们都大骂腾讯采用中文验证码.^_^  我不得不佩服腾讯为了防止目前网络上横行的QQ号码自动注册机而采取中文验证码的手段.仔细想了想感觉用程序生成随机的中文验证码并不是很难,下面就来介绍一下使用C#生成随机的中文汉字的原理. 1.汉字编码原理  到底怎么办到随机生成汉字的呢?汉字从哪里来的呢?是不是有个后台数据表,其中存放了所需要的所有汉字,使用程序随机取出几个汉字组合就行了呢?使用后

Java语言中的字符char可以存储一个中文汉字吗为什么呢

Java语言中的字符char可以存储一个中文汉字吗?为什么呢? · 可以.因为Java语言采用的是Unicode编码.Unicode编码中的每个字符占用两个字节.Char储存的是一个字符(两个字节),中文也是占的两个字节 · 所以,Java中的字符可以存储一个中文汉字 原文地址:https://www.cnblogs.com/lcs-java/p/8486984.html

JS判断字符串长度(英文占1个字符,中文汉字占2个字符)

//计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) { len += 2; } else { len ++; } } return len; } 方法二: function strlen(str){

简单测试--C#实现中文汉字转拼音首字母

第一种: 这个是自己写的比较简单的实现方法,要做汉字转拼音首字母,首先应该有一个存储首字母的数组,然后将要转拼音码的汉字与每个首字母开头的第一个汉字即"最小"的汉字作比较,这里的最小指的是按拼音规则比较最小,例如a比h小,所以"爱"比"恨"小,同一个字母开头的拼音比较大小以此类推.最后实现的结果是只转汉字,对于中文特殊字符.标点符号和英文都原样输出,不转码. 实现方法如下: 1 using System; 2 using System.Colle

正则表达式之匹配中文汉字的正则表达式介绍

这篇文章主要介绍了通过正则表达式准确匹配出字符串中存在的中文汉字,同时还有匹配双字节字符的正则,需要的朋友可以参考下 \w匹配的仅仅是中文,数字,字母,但是对于特殊需求来讲,仅匹配中文时常会用到 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 或许你也需要匹配双字节字符,中文也是双字节的字符 匹配双字节字符(包括汉字在内):[^\x00-\xff] 以下图为例:我想要的仅仅只是某一标题下的文章的来源,但是下面的正则就匹配到了多少分钟前,多少小时前这显然不是我想要的,这种情况下我就需要

php使用strlen()判断中文汉字字符串长度

php使用strlen()判断中文汉字字符串长度 对于含有中文情况,此时可以采用: iconv_strlen($str,"UTF-8"); iconv_strlen 是无论是何种编码,均能计算准确字符个数. aa

java 常见的几种类型范围说明,char 型变量中能不能存贮一个中文汉字

package com.yuan.test; public class Autogrew { public static void main(String[] args) {  // 保存 short 可取的最大值的常量,最大值为 215-1.(32 767)   // 保存 short 可取的最小值的常量,最小值为 -215.(-32 768)      short s1=11278;      s1+=1;      //s1=s1+1;//报错 自动会转换成int 类型      Syst