1、一句话通俗定义:
特殊含义的字符串,用于设置代码的规则匹配规范。
2、常用元字符列举:
(1)单个匹配:
\d :表示一个数字
\D :表示一个非数字
\w :表示一个字母(不区分大小写)、数字或下划线
\W :表示不是字母、数字或下划线
. :匹配除了换行符以外的任意字符
\s :匹配一个看不到的符号(空格或者制表符)
\S :匹配一个可以看得见的符号
(2)多个匹配:
? :重复0次或1次(默认是贪婪匹配,尽可能多匹配)
?? :重复0次或1次(惰性匹配,尽可能少匹配)
* :重复0次或更多次
*? :重复0次或更多次,惰性匹配
+ :重复1次或更多次
+? :重复1次或更多次,惰性匹配
{n} :重复n次
{n,} :重复n次或更多次
{n,}? :重复n次或更多次,惰性匹配
{n,m} :重复n到m次
{n,m}? :重复n到m次,惰性匹配
(3)标志符:
^ :匹配字符串的开始
$ :匹配字符串的结束
\b :匹配单词的开始或结束
(4)其他:
| :表示或
\t :制表符号
\n :换行符号
\f :换页符号
\e:escape
3、经典正则表达式整理,来自无数前辈的探索:
(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}$
(2)域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
(3)Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
(4)日期格式:^\d{4}-\d{1,2}-\d{1,2}
(5)腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
(6)匹配HTML标记:/<(.*)>.*<"/"1>|<(.*) "/>/
(7)匹配HTML标记:/<(.*)>.*<"/"1>|<(.*) "/>/
(8)只能输入由26个英文字母组成的字符串:^[A-Za-z]+$
(9)只能输入由26个大写英文字母组成的字符串:^[A-Z]+$
(10)只能输入由26个小写英文字母组成的字符串:^[a-z]+$
(11)只能输入由26个英文字母或者数字组成的字符串:^[A-Za-z0-9]+$
(12)身份证号(15位、18位数字):^\d{15}|\d{18}$
4、今日微语:
有志者,事竟成。恒而持之,贞而守之,无咎~