php正则匹配utf-8编码的中文汉字

在javascript中,要判断字符串是中文是很简单的。比如:

var str = "php编程";
if (/^[\u4e00-\u9fa5]+$/.test(str)) {
    alert("该字符串全部是中文");
} else {
    alert("该字符串不全部是中文");
}

PHP中,判断中文的正则表达式如下:

if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str)) //UTF-8汉字字母数字下划线正则表达式
{
    echo"<font color=red>您输入的[".$str."]含有违法字符</font>";
}else{
    echo "<font color=green>您输入的[".$str."]完全合法,通过!</font>";
}

参考:http://my.oschina.net/BearCatYN/blog/413833?p=1

时间: 2024-11-05 01:01:58

php正则匹配utf-8编码的中文汉字的相关文章

PHP正则匹配与文件编码关系

虽然多数高手认为正则会影响程序效率,但是做数据采集的时候,却很难避免使用正则, 强大的正则表达式用起来很舒服,但是在匹配中文的时候,会出现,明明正则表达式没问题,字符数据里包含符合正则表达式的数据,可就是抓不到,这时候,就该停下来,看一下,你所匹配的数据编码,与你的PHP脚本文件编码格式是否一致. 这是因为我们的中文与编码上有多种方法,比如:gbk,utf-8,当你的PHP脚本文件是GBK,而读取的需要匹配的数据编码却是UTF-8的时候,它们就不会返回你想要的结果(不区配). PHP正则匹配与文

利用Python正则匹配中文——爬取校园网公告栏中感兴趣的内容

写这个程序是因为校园网公告栏时不时会有学术报告,讲座之类的信息发布,但这类信息往往发布在讲座的前一天,以至于丢失很多重要消息.同时公告栏里也会发布一些跟学生无关的内容,比如工会主席会议啥的. 主要遇到的困难时对中文的正则匹配问题.(比如通过第一次正则可以提取到一个页面内的所有中文标题,第二次正则从这些中文标题中将能匹配上“报告”两个字的对象添加到结果list内) 学校公告页面是gb2312编码.我使用的方式是,整个工程使用utf-8编码,将需要匹配的关键字转换成utf-8编码格式,使用正则匹配u

php中文正则匹配

今天接到一个需求,用户昵称系统需要将昵称输入的字符类型限定为 中文,英文,数字, -,_ 显然这个应该用正则来实现,那么最终的规则是怎么样的呢?示例代码如下: <?php $str = '我爱北京天安门-1234567_abacABCDDD'; if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_-]+$/u",$str)) //UTF-8汉字字母数字下划线正则表达式 { echo "输入非法"; }else{ echo

中文正则匹配

中文汉字的unicode范围:\u4e00-\u9fa5 全角字符的范围是:\ufe30-\uffa0 匹配双字符:[^\x00-\xff] 匹配空行的正则表达式:n[s| ]*r 匹配HTML标记的正则表达式:/<(.*)>.*</1>|<(.*) />/ 匹配首尾空格的正则表达式:(^s*)|(s*$)示例代码: import java.util.regex.*; public class Main{ public static void main(String a

正则匹配汉字

正则匹配汉字在不同的编码,不同的程序语言上都有些细微的出入,稍不注意就会得不到正确的结果,特此对比一下 javascript 和 php 的正则匹配汉字,而且 php 中的 gb2312 和 utf-8 两种编码匹配规则还不相同同. 在javascript中,要判断字符串是中文是很简单的: <script type="text/javascript"> var str = "我热爱编程"; if(/^[\u4e00-\u9fa5]+$/ . test(s

shell grep正则匹配汉字

Shell grep正则匹配中文 测试文本 demo_exe.c,内容如下,需要注意保存的编码格式,对输出到终端有影响: 我们中文操作系统ASNI默认是GBK的. 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include <string.h> 4 #include <errno.h> 5 #include <locale.h> 6 #include <dlfcn.h> 7 8 /* 9 *

iOS 中的正则匹配(工具类)

正则表达式 正则表达式是对字符串操作的一种逻辑公式, 用事先定义好的一些特定字符.及这些特定字符的组合, 组成一个"规则字符串", 这个"规则字符串"用来表达对字符串的一种过滤逻辑, 正则表达式就是用于描述这些规则的工具, 或者说, 正则表达式就是记录文本规则的代码. 在开发中, 我们经常会有查找符合某些复杂规则的字符串的需要, 比如数据校验: 判断用户的输入是否合法(如:用户注册的时候,QQ号码,电话号码,邮箱是否符合要求) 下面让我们先来看看正则匹配常用的一些字

常用的JavaScript正则匹配规则代码收藏,很实用

收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水平菜,老是自己写不出,看了这个文档,觉得心里踏实很多,用到正则匹配的时候,看下这个,相信为让你省不少时间.注:本正则不仅限于在JS中使用,其它语言也可以借鉴. 匹配特定数字: ^[1-9]\d*$ //匹配正整数 ^-[1-9]\d*$ //匹配负整数 ^-?[1-9]\d*$ //匹配整数 ^[1-9]\d*|0$

正则匹配模式汇总(一)

正则表达式提供另一种强大的文本搜索和处理方式,对于正则表达式,不同语言有着不同的实现,JavaScript采用的Perl5的语法.对于极少数匹配模式是简单的全字符文本的情况,我们往往会采用indexOf这样的方法,但是多数情况下,匹配模式往往都更为复杂. 1.语法 1)在JavaScript中我们可以采用内建构造器RegExp()来创建正则表达式的对象:  var re = new RegExp("j.*t") 2)当然除了使用RegExp对象,我们可以采用更为简便的正则文本标记法 v