前言
正则表达式,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。维基百科
基本语法
匹配字符串的开始
匹配字符串的结束
定义一个字符串的字符范围
任何空白字符
任何非空白字符
一个数字字符
一个非数字字符
一个数字、字母、下划线字符
一个非数字、字母、下划线字符
除了换行符之外的任意一个字符
匹配前一项n次
匹配前一项n次及以上
匹配前一项至少n次,至多m次
匹配前一项0次及以上
匹配前一项1次及以上
匹配前一项0次或1次
常用的正则表达式
校验数字的表达式
数字
n位的数字
至少n位的数字
m~n位的数字
0和非0开头的数字
非0开头的最多带两位小数的数字
1
| ^([1-9][0-9]*)+(.[0-9]{1,2})?$
|
带1~2位小数的正数或负数
正数、负数、小数
有两位小数的正实数
有1~3位小数的正实数
非0的正整数
1 2 3
| ^[1-9]d*$ ^([1-9][0-9]*){1,3}$ ^+?[1-9][0-9]*$
|
非0的负整数
1 2
| ^-[1-9][]0-9"*$ ^-[1-9]d*$
|
非负整数
非正整数
1 2
| ^-[1-9]d*|0$ ^((-d+)|(0+))$
|
非负浮点数
1 2
| ^d+(.d+)?$ ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$
|
非正浮点数
1 2
| ^((-d+(.d+)?)|(0+(.0+)?))$ ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$
|
正浮点数
1 2
| ^[1-9]d*.d*|0.d*[1-9]d*$ ^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$
|
负浮点数
1 2
| ^-([1-9]d*.d*|0.d*[1-9]d*)$ ^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$
|
浮点数
1 2
| ^(-?d+)(.d+)?$ ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$
|
校验字符的表达式
汉字
英文和数字
1 2
| ^[A-Za-z0-9]+$ ^[A-Za-z0-9]{4,40}$ 大专栏 【笔记】正则表达式> |
长度为3~20的所有字符
由26个英文字母组成的字符串
由26个大写英文字母组成的字符串
由26个小写英文字母组成的字符串
由数字和26个英文字母组成的字符串
由数字、26个英文字母或者下划线组成的字符串
中文、英文、数字、下划线
1
| ^[u4E00-u9FA5A-Za-z0-9_]+$
|
中文、英文、数字,不包括下划线等符号
1 2
| ^[u4E00-u9FA5A-Za-z0-9]+$ ^[u4E00-u9FA5A-Za-z0-9]{2,20}$
|
可以输入含有^%&’,;=?$"等字符
禁止输入含有~的字符
特殊需求表达式
Email地址
1
| ^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
|
域名
1
| [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
|
InternetURL
手机号码
1
| ^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$
|
电话号码
1
| ^((d{3,4}-)|d{3.4}-)?d{7,8}$
|
国内电话号码
身份证号
短身份证号码
1 2
| ^([0-9]){7,18}(x|X)?$ ^d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
|
帐号是否合法
1
| ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
|
密码
强密码
1
| ^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
|
日期格式
一年的12个月
1 2
| ^(0?[1-9]|1[0-2])$ >=1 && <=12
|
一个月的31天
1
| ^((0?[1-9])|((1|2)[0-9])|30|31)$
|
钱的输入格式
1 2 3 4 5 6 7 8
| ^[1-9][0-9]*$ ^(0|[1-9][0-9]*)$ ^(0|-?[1-9][0-9]*)$ ^[0-9]+(.[0-9]+)?$ ^[0-9]+(.[0-9]{2})?$ ^[0-9]+(.[0-9]{1,2})?$ ^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$ ^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
|
xml文件
1
| ^([a-zA-Z]+-?)+[a-zA-Z0-9]+\.[x|X][m|M][l|L]$
|
中文字符的正则表达式
双字节字符
空白行的正则表达式
HTML标记的正则表达式
1
| <(S*?)[^>]*>.*?</1>|<.*? />
|
首尾空白字符的正则表达式
腾讯QQ号
中国邮政编码
IP地址
1 2
| d+.d+.d+.d+ ((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))
|
参考文献
QQ群——DT课堂 - 辛末 - 11月新群
原文:https://www.cnblogs.com/lijianming180/p/12409643.html