正则表达式
编辑时间:2021/04/30
读完本节:大概花费 分钟,共 词
文章目录
1.正则表达式的概念
正则表达式Regular Expression描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
2.正则表达式的使用
2.1正则表达式-普通字符
普通字符 | 作用 |
---|---|
[abc] | 匹配方括号内中所有的字符,只选取其中一个 |
[^abc] | 除了匹配方括号字符外的所有字符 |
[a-z] | 用“-”和方括号配合使用表示匹配该字符区间内的所有字符,只选取其中一个 |
. | 匹配除了换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r] |
\w | 匹配字母、数字、下划线。等价于 [A-Za-z0-9_] |
2.2正则表达式-限定符
普通字符 | 作用 |
---|---|
* | 匹配前面的子表达式0次或多次 |
+ | 匹配前面的子表达式1次或多次 |
? | 匹配前面的子表达式0次或1次 |
{n} | 匹配确定的n次 |
{n,} | 至少匹配n次 |
{m,n} | 最少匹配n次最多匹配m次 |
2.3正则表达式-特殊符号
普通字符 | 作用 |
---|---|
| | 左右两边表达式之间 “或” 关系,匹配左边或者右边 |
() | 在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰; 取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到 |
3.正则表达式的应用
3.1身份证校验
String pattern = "^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$";
3.2邮箱校验
String pattern = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$";
3.3密码强度校验
//必填字母数字及特殊字符,且以字母开头,8位以上
String pattern = "^(?![0-9]+$)(?![^0-9]+$)(?![a-zA-Z]+$)(?![^a-zA-Z]+$)(?![a-zA-Z0-9]+$)[a-zA-Z0-9\\S]{8,}$";
3.4HTML去标签保留文本
例如:
<span><h3>热点问题</h3></span>
只获取标签中的文字
String pattern = "(<[a-z]+[0-9]*>)|(</[a-z]+[0-9]*>)";