【问题标题】:Regular Expression Extractor in JmeterJmeter中的正则表达式提取器
【发布时间】:2012-11-09 18:06:56
【问题描述】:

我在 HTTP 请求中有如下响应

href="index.php?module=Meetings&action=DetailView&record=ed51c2d9-1958-bd61-cce1-509d30ccd4ac">

我想获取“记录”的值,但是当我设置了

Regular Expression : record=(.+?)

只返回“e”。我需要做什么?

【问题讨论】:

    标签: regex jmeter


    【解决方案1】:

    好吧,正则表达式消耗尽可能少(由于?)。因此,在接受第一个字符后就满足了。您可能宁愿让它变得贪婪并限制可能的字符(这样它就不能超过参数的末尾):

    record=([a-f0-9-]+)
    

    如果您不知道允许哪些字符作为参数的值,您也可以说,使用除 & 和引号之外的所有字符:

    record=([^"'&]+)
    

    根据您使用它的位置,您可能需要使用反斜杠转义其中一个引号。

    【讨论】:

      【解决方案2】:

      给定的文本

      href="index.php?module=Meetings&action=DetailView&record=ed51c2d9-1958-bd61-cce1-509d30ccd4ac">
      

      从给定文本值中获取记录值的正则表达式

      record=(.+)"
      

      正则表达式获取以下记录值

      record=ed51c2d9-1958-bd61-cce1-509d30ccd4ac"
      

      【讨论】:

      • 因不正确、未格式化(直到另一个用户修复它)和迟到两年而被否决。这只是您今天发布的十几个此类帖子中的一个。这对任何人都没有帮助,@Subash,尤其是你自己。
      • 这是正确的格式,我已经验证并作为帖子放在这里
      • 格式没问题,是你的正则表达式错误。您假设 record 参数将始终是列出的最后一个参数,这不是一个安全的假设。
      • 什么是需要的结果是 user1813000 想要得到以下格式的结果值,所以这可能是 user1813000 通过这个记录 =(.+?) 正则表达式尝试的正确格式,但他只得到记录 = e values 而不是 user1813000 需要整个记录值,所以我的正则表达式可能是正确的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多