在大数据时代的如今,在测试过程中会接触到大量的数据,实现在大量数据中快速查找替换目标数据少不了正则表达式的协助,所以今天整理一下常用的正则表达式。
一、组成与用途
正则表达式,是由普通字符(例如a-z)和特殊字符(称为“元字符”)组成。主要可用于进行字符串匹配,实现查找字符串、字符串子串或者对查找字符串进行替换的目的。
二、语法
正则表达式中的字符有普通字符、非打印字符、特殊字符、限定符、定位符等。
这里主要说明一下限定符、定位符。
1、限定符
要求指定字符串出现的次数符合设定的规则。
*:前面的表达式匹配到零次或者多次
例如:规则设置为ok*,ok与okkk
+:匹配前面的子表达式一次或多次
例如:规则设置为ok+,o不符合,ok与okkk等符合
?:匹配一个或零个前面的子表达式,非贪婪
例如:规则设置为go(od)?,go与good均符合
{n}: 匹配n次
例如:o{2},not不符合,但good可以匹配到
{n,}: 匹配n以及n次以上的字符
例如:o{2,} 可以匹配到gooooood中的所有o
{n,m}: 表示匹配最少n次,最多m次,设置一个次数范围
例如:o{1,3} 可以匹配到gooooood中的前三个o
2、定位符
^: 匹配字符串的起始位置,
例如:^test,表示匹配以test开头的字符串,如testxy。
$: 匹配输入字符串的结尾,
例如:test$表示匹配以test结尾的字符串,如xytest。
: 匹配一个单词的边界,
例如Goo,匹配Good的Goo
B: 匹配单词的非边界位置,
例如:BGoo,不能匹配Good中的Goo,可以匹配wowGood中的Goo
注:
(^[0-9])+ :表示匹配一个或多个数字,相当于d+
[^[0-9]]+ :表示匹配不含数字的字符串,相当于D+
三、常用的正则表达式
1、 字母下划线校验:[A-Za-z0-9_] ,相当于w+
2、中文:[u4e00-u9fa5]
3、 Email地址:^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
4、18位身份证号:^[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]$
5、日期格式:^d{4}-d{1,2}-d{1,2}
6、IP地址:((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))
7、InternetURL:^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$