常用正则表达式学习和备份

293 阅读2分钟

1.元字符
在正则表达式中,包括2种字符:
(1)普通字符(普通字符就是az、09这类常见的字符)
(2)特殊字符(元字符)
元字符表
元字符|说明

\d | 匹配数字,相当于[0-9]

\D | 匹配非数字,相当于[^0-9]

\w | 匹配一个单字字符,相当于[A-Za-z0-9_]

\W | 匹配一个非单字字符,相当于[^A-Za-z0-9_]

\s | 匹配一个空白字符,包括空格、制表符、换页符和换行符

\S | 匹配一个非空白字符

\r | 匹配一个回车符 (U+000D)

\n | 匹配一个换行符 (U+000A)

\f | 匹配一个换页符 (U+000C)

. | (小数点)匹配除换行符之外的任何单个字符。

[...] | 匹配方括号内的任一字符

[^...] | 匹配非方括号中的任一字符

注意:
方括号又叫字符组,注意某些元字符在字符组外和字符组内的意义不同。例如:^在字符组外匹配行的开头,在字符组内表示排除型字符;-在字符组外匹配普通连字符号,在字符组内(不在开头)表示一个范围;问号和点号在字符组外通常是元字符,但在字符组内只是匹配普通字符而已
2.连接符

连接符|说明

[0-9]|匹配数字,等价于\d

[a-z]|匹配英文小写字母

[A-Z]|匹配英文大写字母

[a-zA-Z0-9]|匹配数字或者任意字母

3.限定符
限定某个或某类字符出现的次数,以下n,m是一个正整数 限定符|说明
+|重复1次或者更多次(≥1)

?|重复0次或者1次(≤1)。如果紧跟在任何量词 *、 +、? 或 {} 的后面,将会使量词变为非贪婪的(匹配尽量少的字符),和缺省使用的贪婪模式(匹配尽可能多的字符)正好相反。

*|任意次数

{n}|重复n次

{n,}|最少n次(≥n)

{n,m}|重复n到m次(≥n&&≤m)

4.定位符

限定某些字符出现的位置

定位符|说明

^|限定开始位置的字符

$|限定结尾位置的字符

\b|匹配一个词的边界。但是[\b]很特殊,是匹配一个退格(U+0008)

\B|匹配一个非单词边界

5.转义字符
匹配正则表达式中的特殊字符,我们就必须在该特殊字符前面加上反斜杠“\”将其进行转义 例如:
$、(、)、*、+、.、[、]、?、\、/、^、{、}、|
6.分组符
用小括号()括起来的表达式看出一个整体来处理
7.选择符
选择符|选择匹配2个选项之中的任意一个
8.注释
(?#注释的内容)
9.正则表达式标志

标志|说明

g|全局搜索

i|不区分大小写

m|多行搜索

y|执行“粘性”搜索,匹配从目标字符串的当前位置开始,可以使用y标志 例子:

/Mango/i.test('mango')
返回true

详细请查看:developer.mozilla.org/zh-CN/docs/…

特殊需求表达式

Email地址:

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

手机号码:

^(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}$

身份证号(15位、18位数字):

 ^\d{15}|\d{18}$

2 到 9 位中文昵称:

^[\u4e00-\u9fa5]{2,9}$

账号/密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):

^[a-zA-Z]\w{5,17}$

匹配HTML Tag

<("[^"]*"|'[^']*'|[^'">])*>