概述:“正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 简单来说正则表达式是一种被用于从文本中检索符合某些特定模式的文本。
常用符号
/ | 表式一个正则表达式的开始与结束 |
^ | 匹配字符串的开始字符 |
$ | 匹配字符串的结束字符 |
\b | 匹配一个词语边界的字符,如:“this\b” 与“this word” 匹配,与this word不匹配 |
\B | 匹配一个词语非边界的字符 |
\s | 匹配任何空白字符 |
\S | 匹配任何非空白字符 |
\d | 匹配一个数字字符,等价于[0-9] |
\D | 匹配除了数字之外的任何字符,等价于[^0-9] |
\w | 匹配一个数字。下画线或字母字符,等价于[a-zA-Z0-9_] |
\W | 匹配一个非数字,下非画线或非字母字符,等价于[^a-zA-Z0-9_] |
. | 匹配除“\n”之外的任意单个字符 |
| | 选择符,用()将两个以上的用选择符分隔的选择项括起来,如“b(i|a|u)g” ==big或bag或bug |
[ ] | 匹配方括号中所包含的任意字符 |
* | 匹配前一项0次或多次,等价于{0,} |
+ | 匹配前一项1次或多次,等价于{1,} |
? | 匹配前一项0次或1次,即前一项式可选的,等价于{0,1} |
{n} | 匹配前一项n次 |
{n, } | 匹配前一项n次以上 |
{n,m } | 匹配前一项至少n次,至多m次 |
\ | 转义符号,要将正则表达式中具有特殊含义的字符还原为原来的普通字符时,就需要用到此字符, 如:要匹配日期如2018/10/12时,就需要转义为“\/” |
常用的正则表达式
验证用户密码 :
^[a-zA-Z]\w{5,17}$
注:正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证Email地址 :
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证身份证号(15位或18位数字):
^\d{15}|\d{18}$
验证Internet URL :
^[http|https]://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间) :
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
中国邮政编码 :
[1-9]\d{5}(?!\d)
腾讯QQ号 :
[1-9][0-9]{4,}
xml文件:
^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
国内电话号码(0511-4405222、021-87888822) :
\d{3}-\d{8}|\d{4}-\d{7}
域名 :
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
文件扩展名效验 :
^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?"<>|]+\\.txt(l)?$
日期(MM/DD/YYYY):
^(0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2}$
日期(YYYY/MM/DD):
^(19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])$