正则表达式tips
在大数据时代的如今,在测试过程中会接触到大量的数据,实现在大量数据中快速查找替换目标数据少不了正则表达式的协助,所以今天整理一下常用的正则表达式。
一、组成与用途
正则表达式,是由普通字符(例如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。
\b: 匹配一个单词的边界,
例如\bGoo,匹配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-./?%&=]*)?$