您的位置:

完善匹配中文的php正则表达式(php 正则表达式)

本文目录一览:

超常用的PHP正则表达式收集整理

以下就是对超常用的PHP正则表达式进行的收集整理,为了方便大家更快更好的掌握php正则表达式。

一、表单验证匹配

验证账号,字母开头,允许

5-16

字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$

验证账号,不能为空,不能有空格,只能是英文字母:^\S+[a-z

A-Z]$

验证账号,不能有空格,不能非数字:^\d+$

验证用户密码,以字母开头,长度在

6-18

之间:^[a-zA-Z]\w{5,17}$

验证是否含有

^%',;=?$\

等字符:[^%',;=?$\x22]+

匹配Email地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配腾讯QQ号:[1-9][0-9]{4,}

匹配日期,只能是

2004-10-22

格式:^\d{4}\-\d{1,2}-\d{1,2}$

匹配国内电话号码:^\d{3}-\d{8}|\d{4}-\d{7,8}$------------评注:匹配形式如010-12345678

或0571-12345678

0831-1234567

匹配中国邮政编码:^[1-9]\d{5}(?!\d)$

匹配身份证:\d{14}(\d{4}|(\d{3}[xX])|\d{1})------------评注:中国的身份证为15

位或18

不能为空且二十字节以上:^[\s|\S]{20,}$

二、字符匹配

匹配由

26

个英文字母组成的字符串:^[A-Za-z]+$

匹配由

26

个大写英文字母组成的字符串:^[A-Z]+$

匹配由

26

个小写英文字母组成的字符串:^[a-z]+$

匹配由数字和

26

个英文字母组成的字符串:^[A-Za-z0-9]+$

匹配由数字、26个英文字母或者下划线组成的字符串:^\w+$

匹配空行:\n[\s|

]*\r

匹配任何内容:[\s\S]*

匹配中文字符:[\x80-\xff]+

或者

[\xa1-\xff]+

只能输入汉字:^[\x80-\xff],{0,}$

匹配双字节字符(包括汉字在内):[^\x00-\xff]

三、匹配数字

只能输入数字:^[0-9]*$

只能输入n位的数字:^\d{n}$

只能输入至少n位数字:^\d{n,}$

只能输入m-n位的数字:^\d{m,n}$

匹配正整数:^[1-9]\d*$

匹配负整数:^-[1-9]\d*$

匹配整数:^-?[1-9]\d*$

匹配非负整数(正整数

+

0):^[1-9]\d*|0$

匹配非正整数(负整数

+

0):^-[1-9]\d*|0$

匹配正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$

匹配负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$

匹配浮点数:^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

匹配非负浮点数(正浮点数

+

0):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

匹配非正浮点数(负浮点数

+

0):^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

四、其他

匹配HTML标记的正则表达式(无法匹配嵌套标签):(\S*?)[^]*.*?/\1|.*?

/

匹配网址

URL

:[a-zA-z]+://[^\s]*

匹配

IP

地址:((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)

匹配完整域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?

提示

上述正则表达式通常都加了

^

$

来限定字符的起始和结束,如果需要匹配的内容包括在字符串当中,可能需要考虑去掉

^

$

限定符。

以上正则表达式仅供参考,使用时请检验后再使用,希望通过这些超常用的PHP正则表达式

PHP的正则表达式中使用中文(并匹配中文)的问题,原串为UTF8

?php

$str = "中国势力是(烟消云散、再转在、匣介)中国、类别置顶帖(来哦见好就收)、炒肉可示、需要城";

$preg2 = "/中国/sim" ;

preg_match_all($preg2, $str, $strResult, PREG_PATTERN_ORDER);

print_r($strResult);

?

我的PHP文件是UTF-8编码,不知道你的$str是从哪里得到的呢?像上面一样,我直接给$str赋值,这样使用 /中国/sim 这个表达式没有任何问题,会不会是你$str字符串的编码与页面编码不一致呢?

PHP正则表达式中怎么匹配汉字啊 - 技术问答

匹配中文字符的正则表达式:

[\\u4e00-\\u9fa5]匹配双字节字符(包括汉字在内):[^\\x00-\\xff]应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){return

this.replace([^\\x00-\\xff]/g,\"aa\").length;}匹配空行的正则表达式:\\n[\\s|

]*\\r匹配HTML标记的正则表达式:/.*|/匹配首尾空格的正则表达式:(^\\s*)|(\\s*$)

php怎么将中文利用正则表达式匹配出来

正则匹配中文汉字根据页面编码不同而略有区别:

GBK/GB2312编码:[x80-xff]+ 或 [xa1-xff]+

UTF-8编码:[x{4e00}-x{9fa5}]+/u

$str = "账单123";

//GBK/GB2312使用: 

preg_match_all("/[\x80-\xff]+/", $str, $chinese);

//UTF-8 使用:

//preg_match_all("/[\x{4e00}-\x{9fa5}]+/u", $str, $chinese);

print_r($chinese);

阁下所说的乱码应该就是编码没弄对了

php中如何用正则表达式匹配中文字符呢?

php中匹配一个或多个中文字符(包含简体和繁体中文字符)的正则表达式如下:/[[b]\x{4e00}-\x{9fa5}]+/注意:php中正则表达式的16进制是以

\x

开头的。