PHP的正则表达式中使用中文(并匹配中文)的问题,原串为UTF8
1、解释:[a-zA-Z_\\x{4e00}-\\x{9fa5}] //第一位,必须非数字,但又要满足其它条件 [\\x{4e00}-\\x{9fa5}\\w]{2,11} //从第二位开始,必须满足全部条件,长度为2到11位(加第一位就是3到12位啦)。
2、preg_match(/[a-z]{3,14}/,$content,[可选]$a);这个返回布尔值,$a得到的是数组,把匹配到的字符防在$a;我之能举这个给你了。汉字可以网上去查。还有表达试 去看看 我也记不得了。
3、[\\xC0-\\xFF][\\x80-\\xBF]: 中文匹配,utf-8字符集当中字符可以用四个十六进制数表示,如\\x5b57就是“字”。{0,.$start.}:以上表达式的匹配个数范围。/s:匹配换行回车。
4、u (PCRE_UTF8) 此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 0 起可用,在 win32 下自 PHP 3 起可用。
5、php中匹配一个或多个中文字符(包含简体和繁体中文字符)的正则表达式如下:/[[b]\\x{4e00}-\\x{9fa5}]+/注意:php中正则表达式的16进制是以 \\x 开头的。
6、保存为utf-8可能会有点麻烦,一般utf-8文件开头会有BOM,如果使用session就会出问题,可用editplus来保存,在editplus中,工具-参数选择-文件-UTF-8签名,选择总是删除,再保存就可以去掉BOM信息了。
求一个PHP正则表达式匹配(字母、数字、汉字、下划线)
preg_match(/[a-z]{3,14}/,$content,[可选]$a);这个返回布尔值,$a得到的是数组,把匹配到的字符防在$a;我之能举这个给你了。汉字可以网上去查。还有表达试 去看看 我也记不得了。
式子:/^[a-zA-Z0-9]+$/u 释义:/:表示正则表达式的定义,固定写法。^:表示开头。[]:表示字符组。匹配所包含的任意一个字符。如,“[ab]”匹配“plain”中的“a”。
\\w就是匹配字母或数字或下划线或汉字,+则与*差不多,区别是+包括重复0次,而*就可以。=就ushi匹配=号两个斜杠则表示正则表达式的分界。
其中\\s表示空白符,*表示重复任意次前面的字符(0个或以上),所以\\s*就表示可以匹配任意个空白符的意思。{ }就是匹配大括号。
网址中带有中文字符的php正则表达式
可能是因为在正则表达式中没有表示中文字符的字符类或集合或范围。
php中匹配一个或多个中文字符(包含简体和繁体中文字符)的正则表达式如下:/[[b]\\x{4e00}-\\x{9fa5}]+/注意:php中正则表达式的16进制是以 \\x 开头的。
[\\x{4e00}-\\x{9fa5}\\w]{2,11} //从第二位开始,必须满足全部条件,长度为2到11位(加第一位就是3到12位啦)。补充:\\x{4e00}-\\x{9fa5}这个就是汉字的Unicode范围。preg_match(/[a-z]{3,14}/,$content,[可选]$a);这个返回布尔值,$a得到的是数组,把匹配到的字符防在$a;我之能举这个给你了。汉字可以网上去查。还有表达试 去看看 我也记不得了。
以下就是对超常用的PHP正则表达式进行的收集整理,为了方便大家更快更好的掌握php正则表达式。
php正则匹配中文乱码问题
1、推荐:《PHP视频教程》 php判断字符串是否有包含乱码判断一个字符串是否包含乱码:1:可以用正则匹配,但是你需要知道乱码大概包括的符号有哪些。 运用黑魔法之json_encode( $string) === null来判断。
2、换mb_ereg_replace即可解决问题。
3、匹配任意中文字符(unicode编码):[\\x{4e00}-\\x{9fff}] (GBK编码):([\\xb0-\\xfe][\\x00-\\xff])+ 这是我在阅读《正则指引》一书,书中写的,亲测可行。
4、php中匹配一个或多个中文字符(包含简体和繁体中文字符)的正则表达式如下:/[[b]\\x{4e00}-\\x{9fa5}]+/注意:php中正则表达式的16进制是以 \\x 开头的。