常用正则表达式大全:数字、字符及特殊需求的正则表达式详解
正则表达式(Regular Expression)是用来描述或匹配一系列符合某个句法规则的字符串的模式。在编程和数据处理领域,正则表达式被广泛用于字符串匹配和替换。本文将详细介绍常用的正则表达式,包括数字校验、字符校验以及特殊需求的表达式,并结合使用场景,帮助您更好地理解和应用正则表达式。
一、数字校验的正则表达式
数字校验在数据验证中非常常见,如验证用户输入是否为合法的数字、金额等。以下是一些常用的数字校验正则表达式:
- 纯数字:
^[0-9]*$
说明:匹配由0-9组成的任意长度的数字字符串。使用场景:验证输入是否为纯数字,如验证码、数字ID等。 - n位的数字:
^\d{n}$
说明:匹配精确n位的数字。使用场景:验证固定长度的数字,如银行卡后四位、手机短信验证码等。 - 至少n位的数字:
^\d{n,}$
说明:匹配至少n位的数字。使用场景:验证密码长度是否达到最低要求的数字位数。 - m-n位的数字:
^\d{m,n}$
说明:匹配长度在m到n位之间的数字。使用场景:验证账号、密码的长度限制。 - 零和非零开头的数字:
^(0|[1-9][0-9]*)$
说明:匹配以0或非零数字开头的数字。使用场景:验证整数,包括0和非零开头的数字。 - 非零开头的最多带两位小数的数字:
^([1-9][0-9]*)(\.[0-9]{1,2})?$
说明:匹配非零开头的整数,且可以带一到两位小数。使用场景:验证金额输入,要求不能以0开头,且小数位不超过两位。 - 带1-2位小数的正数或负数:
^(-)?\d+(\.\d{1,2})?$
说明:匹配正负数,且小数位为1到2位。使用场景:验证温度、重量等数据,允许负值和小数。 - 正数、负数、和小数:
^(-|\+)?\d+(\.\d+)?$
说明:匹配整数或小数,包含正负号。使用场景:通用的数字输入验证,支持正负数和小数。 - 有两位小数的正实数:
^[0-9]+(\.[0-9]{2})?$
说明:匹配正实数,且小数位为两位。使用场景:金额输入,要求精确到分。 - 非零的正整数:
^[1-9]\d*$
说明:匹配非零开头的正整数。使用场景:数量、序号等不允许为0的正整数输入。
二、字符校验的正则表达式
字符校验主要用于验证字符串内容是否符合特定的字符集要求,如只能包含字母和数字等。
- 汉字:
^[\u4e00-\u9fa5]{0,}$
说明:匹配任意长度的汉字字符。使用场景:验证姓名、中文地址等只能包含汉字的字段。 - 英文和数字:
^[A-Za-z0-9]+$
说明:匹配由英文大小写字母和数字组成的字符串。使用场景:用户名、密码等只能包含英文和数字的输入。 - 长度为3-20的所有字符:
^.{3,20}$
说明:匹配任意字符,长度在3到20之间。使用场景:验证昵称、留言内容长度等。 - 由26个英文字母组成的字符串:
^[A-Za-z]+$
说明:匹配仅由英文字母组成的字符串。使用场景:验证英文姓名、城市名等。 - 由数字、26个英文字母或者下划线组成的字符串:
^\w+$
说明:匹配由字母、数字、下划线组成的字符串。使用场景:验证账号、密码,符合一般编程变量命名规则的字符串。 - 中文、英文、数字包括下划线:
^[\u4E00-\u9FA5A-Za-z0-9_]+$
说明:匹配中文、英文、数字和下划线。使用场景:用于昵称、备注等允许中英文混合的输入。
三、特殊需求的正则表达式
特殊需求的正则表达式用于验证特定格式的数据,如邮箱、URL、身份证号等。
- Email地址:
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
说明:匹配标准的Email格式。使用场景:用户注册、邮箱绑定时的Email格式验证。 - 域名:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
说明:匹配合法的域名格式。使用场景:网站URL输入验证、链接抓取等。 - InternetURL:
[a-zA-z]+://[^\s]*
或^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
说明:匹配以http(s)://开头的URL。使用场景:网页链接验证、网络爬虫URL采集。 - 手机号码:
^1[3-9]\d{9}$
说明:匹配中国大陆的手机号。使用场景:用户注册、手机号码绑定的验证。 - 身份证号(15位、18位数字):
^\d{15}$|^\d{18}$|^\d{17}(\d|X|x)$
说明:匹配15位或18位数字的身份证号,支持尾号为X的情况。使用场景:身份证号码的基本格式验证。 - 日期格式(yyyy-mm-dd):
^\d{4}-\d{1,2}-\d{1,2}$
说明:匹配年份-月份-日期格式的日期。使用场景:生日、日期输入的格式验证。 - IP地址:
\b(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d))(\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}\b
说明:匹配IPv4格式的IP地址。使用场景:网络配置、日志分析中的IP地址提取和验证。
四、实用的正则表达式示例
- 强密码验证:
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
说明:密码必须包含大小写字母和数字,长度在8-10位,不能使用特殊字符。使用场景:提高账号安全性的密码设置要求。 - 提取网页图片:
<img[^>]+src="([^">]+)"
说明:匹配HTML中img标签的src属性,提取图片URL。使用场景:网页爬虫中提取网页中的图片链接。 - 匹配HTML标签:
<(\S*?)[^>]*>.*?</\1>|<.*? />
说明:匹配HTML的开始标签和结束标签。使用场景:在文本处理中需要过滤或替换HTML标签时使用。
五、正则表达式测试工具
为了方便验证正则表达式的正确性,可以使用在线的正则表达式测试工具:
- 菜鸟教程正则表达式教程:https://www.runoob.com/regexp/regexp-tutorial.html
- 在线正则表达式测试工具:http://tool.oschina.net/regex
六、注意事项
- 转义字符:在使用正则表达式时,需要注意转义字符。例如,在Java中使用正则表达式,需要对
\
进行双重转义,写成\\
。 - 贪婪与懒惰匹配:正则表达式默认是贪婪匹配,即尽可能多地匹配字符。可以使用
?
来实现非贪婪匹配。 - 测试与调试:复杂的正则表达式可能难以阅读和维护,建议在使用前充分测试,确保其匹配结果符合预期。
阅读剩余
版权声明:
作者:懒洋洋在线表演敲代码
链接:http://yfcov.com/exploit/javascript/cydzzbds-40.html
文章版权归作者所有,未经允许请勿转载。
THE END