匹配符以及含义
d? 表示d出现0次或者1次
a* a可以出现0次或多次
a+ a出现一次以上
a{6} a出现6次
a{2,} a出现2次以上
a{2,6} a出现2-6次
匹配多个字符:
(ab)+ ab出现一次以上
或运算:
a(cat|dog) 匹配 a cat or a dog
acat|dog 匹配 a cat or dog
字符类:
[abc]+ abc出现一次以上 abc aabbcc
[a-zA-Z0-9] 匹配任意的大小写字母,数字。ABCabc123
^ 排除 【^0-9】 匹配0-9之外的数据(包括换行符)
元字符:
\d 数字字符 \d+ 匹配一个以上的数字
\D 非数字字符
\w 单词字符 单词 数字 下划线即英文字符
\W 非单词字符
\s 空白符 包含空格和换行符
\S 非空白字符
\b 单词的边界 单词的开头或结尾 单词与符号之前的边界
\B 非单词的边界 符号与符号 单词与单词的边界
. 任意字符不包含换行符
. 表示. 通过\进行了转意
^ 匹配行首 $ 匹配行尾
*+{}贪婪匹配
<strong><b>https://www.wondershare. com</strong></b>
上述字符中
<.+> 会匹配整串 因为是贪婪匹配
<.+?> 只匹配两个标签代码,+? 设置为懒惰匹配
正则表达式测试网站:https://regex101.com/
正则表达式案例
验证电话号码
^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
验证身份证号(15位或18位数字)
^\d{15}|\d{18}$
匹配Email地址
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配腾讯QQ号
[1-9][0-9]{4,}
匹配ip地址
\d+\.\d+\.\d+\.\d+
匹配年⽉⽇⽇期 格式2018-12-6
^[1-9]\d{0,3}-(1[0-2]|0?[1-9])-(3[01]|[12]\d|0?[1-9])$
长度为8-10位的⽤户密码 : 包含数字字母下划线
\w{8,10