每周学点测试小知识-正则表达式

跟着芒果一起,好好学习,天天向上~

好久不见的每周学点测试小知识,在上周的课堂上芒果给大家介绍了正则表达式,在这里我们简单的复习一下,认识一下正则表达式,并且学习一些常用的元字符:

正则表达式简介

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

通过正则表达式,我们可以测试字符串内的模式;替换文本;基于模式匹配从字符串中提取子字符串;可以查找文档内或输入域内特定的文本。在测试工作上的运用,比如postman 正则提取,jmeter 正则提取,fiddler 正则搜索,fiddler url过滤,fiddler autoresponder 正则url匹配,fiddler 脚本中正则匹配替换,日志查询等等都是需要用到正则表达式的。

简单匹配

a     单纯字符,就是匹配相同的字符,也可以多个;

[]     包含,只要写在中括号内的都可以匹配,也可以范围模式,如[0-9]可以匹配0-9的任意数字,[abc]可以匹配a\b\c任意字符;

[^]    排除,没写在括号中内容都可以匹配,也可范围排除,如[^0-9]可以匹配0-9外的任意字符;

{}    数量匹配,表示前面的内容出现多少次,如a{2}可以匹配aa,a{1,3}表示可以匹配a1至3次,即a,aa,aaa,a{1,}则可以匹配a一次到∞次,即a,aa,aaa,...;

\f    匹配一个换页符;

\n    匹配一个换行符;

\r    匹配一个回车符;

\t    匹配一个制表符;

\v    匹配一个垂直制表符;

\s    匹配任何空白字符,包括空格、制表符、换页符等等,等价于 [ \f\n\r\t\v];

\S    匹配任何非空白字符,等价于 [^ \f\n\r\t\v]。

通配符

\    转义符,比如通配符本身^是个被查找的字符则需要 \^;

.    点,任意字符内容的匹配,除了换行符;

?    非贪婪字符,等价于匹配长度0或1 ,等价于{0,1};

+    贪婪字符,等价于匹配长度大于0 ,等价于{1,};

*    贪婪字符,等价于匹配长度大于等于0 ,等价于{0,};

\d    表示任意数字,等价于[0-9]

\w    表示任意大小写字母、数字或者下划线,等价于[A-Za-z_0-9]

\u     \u后面跟4个16进制数字,一般用于中文匹配,如[\u4e00-\u9fa5]可以匹配对应的中文。

逻辑格式

()    匹配括号里的表达式并获取这一匹配;和数学、代码优先级一样,都是类似内部需要优先计算,括号可以提高优先级;如果只想匹配而不获取括号内的表达式,可以加上字符?:;

|    或逻辑,和代码中相同,表示前面和后面的表达式都可以算匹配;

^    开始符号,只用在开头,表示一定要从开头匹配,中间开始的不算;

$    结束符号,只用在结尾,表示一定是末尾匹配,前面的都不算;

^和$            一起用时,代表前后都要匹配,只有整个字符串符合才算匹配;

\b    用来描述字符串或单词的边界,描述单词的前或后边界;

\B    表示非单词边界;不能对定位符使用限定符。

几个小例子

我们在做正则匹配、提取或者是替换操作时,一般会将这些字符结合起来使用,接下来,我们一起看几个简单的小例子吧:

l 匹配字符串asd123asd中的数值:

我们想要对数字进行匹配一般可以使用[0-9]或者是\d,加上数字又有多个,所以我们可以使用[0-9]+或者是\d+进行匹配。

l 匹配字符串\u628ATEST\u7F16中的编码中文内容:

从上面学习中我们可知道中文字符为\u后面接上4个16进制数字,所以在此字符串中我们可以使用\\u\w{4}进行匹配,\u为元字符需要进行转义,而16进制数字我们可以用\w([A-Za-z_0-9])进行匹配,如果需要更精确一点我们可以使用\\u[0-9A-Z]{4}进行匹配。

l 获取json字符串{str:"value",int:123}中str对应的值的value:

从字符串分析我们可以知道value是位于str:”与”,之间的字符串,字符个数未知,所以我们可以使用{str:”(.+?)”,进行匹配,并使用()括号来获取其中的值。

l 匹配只要13、1415161718打头的11位手机号码

被匹配的字符串个数必须是11位,并且第一位数字肯定为1,第二位数字位3、4、5、6、7、8,后面接上9位数字,因此匹配表达式可以为^1[3-8][0-9]{9}$

好了,芒果今天要介绍的内容就到这里了,不知道大家对于今天的知识掌握得如何呢?如果有什么不清楚的地方可以加芒果微信咨询,或者找芒果要当天的视频加强学习哟~

TestOps|测试运维

精益技术 赋能过程

(0)

相关推荐

  • notepad++正则表达式

    .匹配任意字符,除\r和\n\s跟[[:space:]]一样,匹配空白字符:[ \t\r\n\v\f],使用 [[:blank:]] 来避免匹配新一行.1位空字符:匹配任何空白字符,包括空格.制表符. ...

  • 每周学点测试小知识——分布式Jmeter

    跟着芒果一起,好好学习,天天向上~ 这里芒果为大家总结一下我们上周三节Vip试听课--分布式Jmeter的知识点,大家一起涨姿势~ 周三晚上的公开课,是由叮咚老师介绍分布式Jmeter~ 让我们来看看 ...

  • 每周学点测试小知识——WebDriver定位元素

    跟着芒果一起,好好学习,天天向上~ 上周四下午的公开课是芒果给大家介绍的自动化相关知识--WebDriver定位元素,在这里芒果给大家做个小介绍: 下面是这次课程的思维导图: 这里我们先来看看tag ...

  • 每周学点测试小知识-Linux文件属性

    跟着芒果一起,好好学习,天天向上~ 上周五下午的vip试听课是芒果给大家介绍的Linux的一些基础知识,在这里芒果给大家对于其中的一部分内容--Linux文件属性做个小介绍: 课堂上芒果给大家介绍过L ...

  • 每周学点测试小知识-bat批处理命令

    跟着芒果一起,好好学习,天天向上~ 今天芒果要跟大家一起介(tu)绍(cao)一下bat批处理命令~ 批处理文件,顾名思义,是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者C ...

  • 每周学点测试小知识-数据库三大范式

    跟着芒果一起好好学习,天天向上 上周四下午的VIP试听课是由芒果给大家介绍的MySQL的一些基础知识,在这里芒果给大家分享其中的一部分内容--对数据库三大范式做个小介绍: 范式(数据库的设计范式)是符 ...

  • 每周学点测试小知识-WebDriver页面操作

    跟着芒果一起好好学习,天天向上~ 不知道关注我们的课程或者公众号的同学还记不记得我们的WebDriver定位元素介绍的八种定位方式?今天的文章是关于定位之后的后续--WebDriver页面操作. 控制 ...

  • 每周科普丨染色体小知识

    染色体的定义 染色体是细胞内具有遗传性质的遗传物质,是基因的载体.常说宝宝眼睛像爸爸,嘴巴像妈妈,这就与其密切相关 而染色体核型分析就是借助染色分带技术,将一个典型的二倍体细胞的全部染色体根据其长度. ...

  • 每天学点养生小知识:秋冬季节,注意防寒驱寒,养生该吃什么呢?

    俗话说"百病从寒起",尤其是在进入秋冬季节,天气寒冷比较干燥,在这个季节更容易发生感冒.发烧等一系列呼吸道疾病,所以在这个季节更要注重养生保健,帮助身体驱寒保暖,同时也要多吃一些, ...

  • 谈谈一般人想不到的口腔学冷门小知识

    ​​第一恒磨牙很重要,而且是非口腔医学专业人士想象不到的重要,没错是想象不到的. 先说第一恒磨牙是什么? 第一恒磨牙,俗称六龄齿,也就是六岁左右所萌出的牙齿,是口腔内萌出的第一颗恒牙. 在这里需说明一 ...