zoukankan      html  css  js  c++  java
  • jmeter 正则表达式基础语法

    正则表达式:描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
    对于正则表达式,相信很多人都知道或者听说过,但是很多人的第一感觉就是难学,因为看第一眼时,全是一堆各种各样的特殊符号,完全不知所云。
    其实只是对正则不了解而以,了解了你就会发现,原来就这样啊。正则所用的相关字符其实不多,也不难记,更不难懂,唯一难的就是组合起来之后,可读性比较差,而且不容易理解。

    本文旨在让大家对正则有一个基本的了解,能写得出简单的正则表达式,并在Jmeter中应用,以满足日常测试或性能测试中的需求。

    1、必须掌握的正则字符

    先简要看下,最常用的字符含义。

    "^" :^会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。
    
    "$"  :$会匹配行或字符串的结尾。
    
    "w":匹配字母,数字,下划线。
    
    例如我要匹配"a2345BCD__TTz" 正则:"w+"  这里的"+"字符为一个量词指重复的次数。 
    
    "s":匹配空格。
    
    例如字符 "a b c" 正则:"wswsw"  一个字符后跟一个空格,如有字符间有多个空格直接把"s" 写成 "s+" 让空格重复。 
    
    ".":匹配除了换行符以外的任何字符。
    
    "[abc]": 字符组,匹配包含括号内元素的字符。
    
    "*":   重复零次或更多(贪婪模式)。
    
    例如"aaaaaaaa" 匹配字符串中所有的a  正则:"a*" 会出到所有的字符"a""+":   重复一次或更多次(懒惰模式)。
    
    例如"aaaaaaaa" 匹配字符串中所有的a;  正则:"a+"会取到字符中所有的a字符,"a+"与"a*"不同在于"+"至少是一次而"*" 可以是0次。
    
    "?":   重复零次或一次。
    
    例如"aaaaaaaa" 匹配字符串中的a 正则 : "a?" 只会匹配一次,也就是结果只是单个字符a。
    
    "{n}":  重复n次。
    
    例如从"aaaaaaaa" 匹配字符串的a 并重复3次 正则:"a{3}" 结果就是取到3个a字符 "aaa""{n,m}":  重复n到m次。
    
    例如正则 "a{3,4}" 将a重复匹配3次或者4次;所以供匹配的字符可以是三个"aaa"也可以是四个"aaaa"正则都可以匹配到。
    
    "{n,}":  重复n次或更多次。
    
    与{n,m}不同之处就在于匹配的次数将没有上限,但至少要重复n次 如 正则"a{3,}" a至少要重复3次。
    
    "*?":   重复任意次,但尽可能少重复。
    
    如 "acbacb" 正则"a.*?b" 只会取到第一个"acb" 原本可以全部取到但加了限定符后,只会匹配尽可能少的字符 ,而"acbacb"最少字符的结果就是"acb""+?":  重复1次或更多次,但尽可能少重复。
    
    与上面一样,只是至少要重复1次。
    
    "??":  重复0次或1次,但尽可能少重复。
    
    如 "aaacb" 正则 "a.??b"只会取到最后的三个字符"acb""{n,m}?":  重复n到m次,但尽可能少重复。
    
    如 "aaaaaaaa"  正则 "a{0,m}" 因为最少是0次所以取到结果为空

    以上就是正则表达式中最基础的部分知识,大家是必须知道的知识点,对于更加复杂部分的内容本文未涉及。其实你看多了,就知道是什么意思了,就和你一开始对Linux命令不熟悉一样,用多了自然而然就记住了。不过也可以先收藏着,当作字典查找。

    写完正则表达式,最好自己先验证下是否和预想的一样,能够提取你想要的。大家随便百度一下在线正则表达式测试,就可以验证了。

    原文:https://testerhome.com/topics/16558

  • 相关阅读:
    (Good Bye 2019) Codeforces 1270B Interesting Subarray
    (Good Bye 2019) Codeforces 1270A Card Game
    Codeforces 1283D Christmas Trees(BFS)
    Codeforces 1283C Friends and Gifts
    Codeforces 1283B Candies Division
    1095 Cars on Campus (30)
    1080 Graduate Admission (30)
    1099 Build A Binary Search Tree (30)
    1018 Public Bike Management (30)
    1087 All Roads Lead to Rome (30)
  • 原文地址:https://www.cnblogs.com/sucretan2010/p/12626799.html
Copyright © 2011-2022 走看看