【问题标题】:Value extraction by REGEX - JMeter通过 REGEX 提取值 - JMeter
【发布时间】:2014-12-03 11:51:27
【问题描述】:

我想在 JMeter 的分隔正则表达式提取器中提取以下由破折号“-”分隔的串行代码的每一部分。

序列号:cdaf57ce-1a50-42fc-b548-2c84ad7911a8

预期结果是:

Regular Expression Extractor 1: cdaf57ce
Regular Expression Extractor 2: 1a50
Regular Expression Extractor 3: 42fc
Regular Expression Extractor 4: b548
Regular Expression Extractor 5: 2c84ad7911a8

我为每个尝试了以下正则表达式:

Regular Expression Extractor 1: (\w{8})-
Regular Expression Extractor 2: [^(\w{8})]-(\w{4})-[^(\w{4})]-[^(\w{4})]-[^(\w{12})]
Regular Expression Extractor 3: [^(\w{8})]-[^(\w{4})]-(\w{4})-[^(\w{4})]-[^(\w{12})]
Regular Expression Extractor 4: [^(\w{8})]-[^(\w{4})]-[^(\w{4})]-(\w{4})-[^(\w{12})]
Regular Expression Extractor 5: -(\w{12})

第一个和最后一个工作正常,但其他人没有。

谢谢

【问题讨论】:

    标签: regex performance jmeter performance-testing load-testing


    【解决方案1】:

    正则表达式提取器可以用作,

    user_variables_g1 = cdaf57ce
    user_variables_g2 = 1a50
    user_variables_g3 = 42fc
    user_variables_g4 = b548
    user_variables_g5 = 2c84ad7911a8
    

    将是输出

    【讨论】:

      【解决方案2】:
      (\w+)(?:-|$)
      

      试试这个。应该可以。查看演示。

      http://regex101.com/r/gJ4uX1/2

      【讨论】:

        【解决方案3】:

        一个简单的正则表达式:

        ([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})
        

        应该可以正常工作 - 并且可以从比赛中捕获的组中获得各个部分。

        如果您必须为每个部分使用单独的正则表达式,那么您需要执行类似的操作

        1. \b[0-9a-f]{8}
        2. (?<=[0-9a-f]{8}-)[0-9a-f]{4}
        3. (?<=[0-9a-f]{8}-[0-9a-f]{4}-)[0-9a-f]{4}
        4. (?<=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-)[0-9a-f]{4}
        5. (?<=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-)[0-9a-f]{12}

        这是使用lookbehind,这不是最有效的构造,(并且并非所有正则表达式引擎都支持),但应该可以工作。 \b 匹配单词边界

        前瞻是另一种方式 - 并且得到更好的支持:

        1. [0-9a-f]{8}(?=-)
        2. [0-9a-f]{4}(?=-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b)
        3. [0-9a-f]{4}(?=-[0-9a-f]{4}-[0-9a-f]{12}\b)
        4. [0-9a-f]{4}(?=-[0-9a-f]{12}\b)
        5. [0-9a-f]{12}\b

        【讨论】:

          【解决方案4】:

          您是否使用一个字段来验证此序列号,试试这个简单的正则表达式:

          ^[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}$
          

          匹配:

          cdaf57ce-1a50-42fc-b548-2c84ad7911a8

          CDAF57CE-1A50-42FC-B548-2C84AD7911A8

          12asCda1-23ON-324f-Bse3-htskjas1234q

          【讨论】:

            猜你喜欢
            • 2022-08-10
            • 1970-01-01
            • 2023-04-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-09
            相关资源
            最近更新 更多