php正则匹配中文

<?php

$str = ‘你是我的+****xiaopingguo  _ 23947237 _+冠军终归这里‘;

preg_match_all(‘/[\x{4e00}-\x{9fa5}A-Za-z0-9]+/u‘, $str, $re);

print_r($re);
//输出结果是:
//Array ( [0] => Array ( [0] => 你是我的 [1] => xiaoweiba [2] => 23947237 [3] => 冠军终归这里 ) )

逐个解释:

1、\x{4e00}-\x{9fa5}是utf编码下汉字的编码范围。

2、A-Za-z0-9,这个代表大写字母、小写字母和数字,没多说的。

3、u是修正符,表示匹配的字符串当成utf-8模式。

仅当备忘。

时间: 2024-08-12 10:25:19

php正则匹配中文的相关文章

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

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

VIM中使用正则匹配中文

众所周知,使用JS的正则对中文进行验证时,可以使用: /[\u4e00-\u9fa5]+/.test('中文') 但是在VIM中再使用这个正则时,则会提示无法找到匹配项 E384: 已查找到文件开头(结尾)仍找不到[\u4e00-\u9fa5]+ 实际上,VIM的在进行搜索时,有一个'magic'设置,当magic设置为不同的情况时(默认的设置是magic),正则表达式的写法是不同的: magic: 除了`^.*$`之外所有的字符都需要加反斜杠 nomagic: 除了`^$`之外所有的字符都需要

正则匹配中文问题

前两天,在公司做一个比较简单的姓名优化,但确在中文姓名这一块,确实为难了. 在网上找了好多的正则,都是能匹配中文及中文的符号,比如: , .之类 好在最后找到了一个比较好的,可以忽略符号的正则,分享给大家: $str = "一二二四五六七八九"; if( preg_match("/^[\x{4e00}-\x{9fa5}]{2,20}$/u",$str) ) // /u是指unicode编码处理 这个正则可以忽略符号.只匹配中文. { echo "<f

正则匹配中文字符

有如下字符: <li><a href="/song?id=185613">惊叹号</a></li><li><a href="/song?id=185614">迷魂曲</a></li> 怎么写正则才能匹配出" 迷魂曲"呢? 答: reg1 = /id=185614">([u4e00-\u9fa5]{3})<\/a>/g; va

正则匹配中文

//如果只想匹配中文,中文的ASI编码为[u4e00-u9fa5] $str = preg_replace("/[\x{4e00}-\x{9fa5}]/iu","zh",$str);    echo $str;

php 正则匹配中文

在javascript中,要判断字符串是中文是很简单的.比如: <script type="text/javascript"> var str = "php编程"; if(/^[\u4e00-\u9fa5]+$/ . test(str)) {     alert("该字符串全部是中文"); } else {     alert("该字符串不全部是中文"); } </script> 用 js 的放在 ph

关于Hive正则匹配中文字符串的问题

首先,中文字符集为 '^[\\4e00-\\u9fa5]$' 1.如果直接在Hive命令行中使用, 则直接使用 '^[\\u4e00-\\u9fa5]$' 进行匹配 2.如果在终端调用,则需叫上转义符,如 hive -e "select '中国' rlike '^[\\\u4e00-\\\u9fa5]$'" 3.在scala和java中使用 同1: val regex = new Regex("[\\u4e00-\\u9fa5]") val a = regex.fi

javascript正则匹配中文

中文的unicode范围\u4e00-\ a = new RegExp("[\\u4e00-\\u9fa5]",'g') b= '中文111' a.exec(b) b.match(a) 主要因为可能计算屏幕上中文和其他字符混排的时候所占的宽度

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 修