preg_match(‘/^[a-zA-Z\x{4e00}-\x{9fa5}]+$/u‘, $str) 原文地址:https://www.cnblogs.com/wdw31210/p/11230550.html 时间: 2024-10-10 08:35:31
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 修
这篇文章主要介绍了通过正则表达式准确匹配出字符串中存在的中文汉字,同时还有匹配双字节字符的正则,需要的朋友可以参考下 \w匹配的仅仅是中文,数字,字母,但是对于特殊需求来讲,仅匹配中文时常会用到 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 或许你也需要匹配双字节字符,中文也是双字节的字符 匹配双字节字符(包括汉字在内):[^\x00-\xff] 以下图为例:我想要的仅仅只是某一标题下的文章的来源,但是下面的正则就匹配到了多少分钟前,多少小时前这显然不是我想要的,这种情况下我就需要
写这个程序是因为校园网公告栏时不时会有学术报告,讲座之类的信息发布,但这类信息往往发布在讲座的前一天,以至于丢失很多重要消息.同时公告栏里也会发布一些跟学生无关的内容,比如工会主席会议啥的. 主要遇到的困难时对中文的正则匹配问题.(比如通过第一次正则可以提取到一个页面内的所有中文标题,第二次正则从这些中文标题中将能匹配上“报告”两个字的对象添加到结果list内) 学校公告页面是gb2312编码.我使用的方式是,整个工程使用utf-8编码,将需要匹配的关键字转换成utf-8编码格式,使用正则匹配u
众所周知,使用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;
正则是个好东西 正则不光可以对英语字符 特殊字符进行提取 对于中文字符 日语字符等等都可以提取 再也不要用(.*?)来匹配了 而且 也不准确! 放在例子先:取出下面字符中的所有中文字符: $str = "这%里是^测&试*中$心,欢.迎e你4的6到k来,我r们a呜呜呜we这y里w安安生生et一ef直在努力gr着找寻啊啊最佳gr的伙伴,希望您的$$%加盟可以@推动他们GH团队高速发展!"; $code = "/[".chr(0xa1)."-&
在javascript中,要判断字符串是中文是很简单的.比如: <script type="text/javascript"> var str = "php编程"; if(/^[\u4e00-\u9fa5]+$/ . test(str)) { alert("该字符串全部是中文"); } else { alert("该字符串不全部是中文"); } </script> 用 js 的放在 ph