常用正则

本文深入探讨了正则表达式的使用,包括中文、数字、日期等匹配规则,以及如何验证特定格式的数据。通过实例展示了正则表达式在验证邮箱地址、身份证号、电话号码等场景的应用,提供了丰富的编程实践指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
/**
*	1.正则匹配中文(UTF8)+英文+数字
*	符号、空格不能通过
*/
$str = "sd的123";
if(preg_match("/^([\x{4e00}-\x{9fa5}]|[0-9a-zA-Z])+$/u",$str)){
	echo '通过';
}else{
	echo '不通过';
}
/**
*	2.验证m-n位的数字的PHP正则:^\d{m,n}$
*	例:取6到12位数字
*/
$str = '12345678';
if(preg_match('/^\d{6,12}$/i',$str)){
	echo '6到12位数字';
}else{
	echo '不是6到12位数字';
}
/**
*	3.常用数字正则
*	验证数字:					^[0-9]*$
*	验证n位的数字:				^\d{n}$
*	验证至少n位数字:			^\d{n,}$
*	验证m-n位数字:				^\d{m,n}$
*	验证零和非零开头的数字:	^(0|[1-9][0-9]*)$
*	验证有两位小数的正实数:	^[0-9]+(.[0-9]{2})?$
*	验证有1-3位小数的正实数:	^[0-9]+(.[0-9]{1,3})?$
*	验证非零的正整数:			^\+?[1-9][0-9]*$
*	验证非零的负整数:			^\-?[1-9][0-9]*$
*	验证非负整数(正整数+0):	^\d+$
*	验证费正整数(负整数+0):	^((-\d+)|(0+))$
*	验证长度为3的字符:			^.{3}$
*	验证由26个英文字母组成的字符串:		^[A-Za-z]+$
*	验证由26个大写英文字母组成的字符串:	^[A-Z]+$
*	验证有26个小写英文字母组成的字符串:	^[a-z]+$
*	验证由数字和26个英文字母组成的字符串:	^[A-Za-z0-9]+$
*	验证由数字英文字母或下划线组成的字符串:^\w+$
*	验证用户密码:				^[a-zA-Z]\w{5,17}$=>字母开头,6-18位,只能包含字母、数字、下划线
*	验证时候含有^%&,;=?$等字符	[^%&,;=?$\x22]+
*	验证汉字					^[\u4e00-\u9fa5],{0,}$
*	验证Email地址:				^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
*	验证InternetURI				^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
*	验证电话号码:				^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX
*	验证身份证号(15或18位数字):^\d{15}|\d{18}$
*	验证一年的12个月:			^(0?[1-9]|1[0-2])$	正确格式:"01"-"09"和"1"-"12"
*	验证一个月的31天:			^((0?[1-9])|((1|2)[0-9])|30|31)$	正确格式:01-08和1,31
*	整数:						^-?\d+$
*	非负浮点数(正浮点数+0):	^\d+(\.\d+)?$
*	负浮点数					^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
*	浮点数:					 ^(-?\d+)(\.\d+)?$
*/


/*---------------------正则简写------------------------------------------*/
/**
*	\d			[0-9]
*	\w			[A0Zz-z0-9]
*	\s			空白字符,空格符、Tab、回车、\r\n
*	字符缩写形式可以用在方括号之内或之外
*	\s\d		空白字符后面紧跟一个数字
*	[\s\d]		单个字符或数字
*	[\da-fA-F]	十六进制数字
*取反字符集简写
*	[\S]		[^\s]
*	[\W]		[^\w]
*	[\D]		[^\d]
*/

/**--------------------日期格式----------------------------------*
*	(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])
*	(19|20)[0-9]{2}			19或20开头,0~9重复两次。匹配1900~2099
*	[-/.]					时间分隔符,匹配"-","空格","/","."
*	(0[1-9]|1[012])			匹配01~12,匹配月份
*	(0[1-9]|[12][0-9]|3[01])01~09,10~29,30,31
*/

/**--------------------身份证----------------------------------*
*	格式:	首6位为地方码
*			7-14位为出生日期码
*			15-18位为顺序编码,用于同年同月同日同地方出生的人
*			17位为GENDER码,男单数,女双数
*	正确格式:XXXXX19000000XXXX ~ XXXXXX20991234XXXX
*	正则:\d{6} (?:19|20) \d{2} (?:0[1-9]|1[0-2]) (?:0[1-9]|[12]\d|3[01]) \d{4}
*/
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值