——————·今天距2021年还有315天·——————
这是ITester软件测试小栈第97次推文
对于正则表达式,第一眼时觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完全不知所云。其实唯一难的就是组合起来之后,可读性比较差,而且不容易理解,其实能看得懂简单的正则表达式,写得出简单的正则表达式,用以满足日常的需求即可。学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改实践。
一
正则表达式说明
1.简介
正则表达式(regular expression)是一种特殊的字符串模式(pattern),用于匹配一组字符串,可以用来检查一个串是否含有某种子串,将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
通俗的说,正则表达式好比用模具做产品,而正则就是这个模具,定义一种规则去匹配符合规则的字符。
2.常用的正则匹配工具
在线匹配工具:
http://www.regexpal.com/
http://rubular.com/
正则匹配软件:McTracer
3.正则匹配的用途
匹配验证: 判断给定的字符串是否符合正则表达式所指定的过滤规则,从而可以判断某个字符串的内容是否符合特定的规则(如email地址、手机号码等),当正则表达式用于匹配验证时,通常需要在正则表达式字符串的首部和尾部加上^和$,以匹配整个待验证的字符串。
查找与替换: 判断给定字符串中是否包含满足正则表达式所指定的匹配规则的子串,如查找一段文本中的所包含的IP地址。另外,还可以对查找到的子串进行内容替换。
字符串分割与子串截取: 基于子串查找功能还可以以符合正则表达式所指定的匹配规则的字符串作为分隔符对给定的字符串进行分割。
二
正则表达式简介
1.元字符
正则表达式中的字符分为 普通字符 和 元字符。大多数字符都将简单地匹配它们的自身值,它们被称为普通字符,如数字(0-9)
,字母(a-z, A-Z)
等,除了特殊元字符之外的所有字符都是普通字符。
代码 | 说明 |
. | 匹配除换行符以外的任意字符 |
\ | 将下一个字符标记为一个特殊字符 |
\w | 匹配字母,数字,下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字,等价于[0-9] |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
[abc] |
字符组,匹配包含括号内元素的字符 |
2.反义字符
代码/语法 | 说明 |
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^abc] | 匹配除了abc字母以外的任意字符 |
3.字符次数匹配
贪婪(贪心) ,如"