Regex 如何在jmeter中获得正则Extractor表达式中的最后一个匹配项?

Regex 如何在jmeter中获得正则Extractor表达式中的最后一个匹配项?,regex,jmeter,post-processing,Regex,Jmeter,Post Processing,我想提取Jmeter中最后出现的正则表达式。 我使用正则提取器表达式来执行此操作,但我无法获得最后一次出现 我试过这个: 正则表达式:“var1”:([^“]+),“var2” 模板:$1$ 匹配号:-1 默认值:表达式\u匹配 然后在我的脚本中,我使用了${expression}变量 我已经测试了表达式\u matchNr但它给出了匹配数 我应该在“比赛编号:”中输入什么 如果您有以下输出,请提前感谢: expression=foo expression_1=foo express

我想提取Jmeter中最后出现的正则表达式。 我使用正则提取器表达式来执行此操作,但我无法获得最后一次出现

我试过这个:

  • 正则表达式:“var1”:([^“]+),“var2”
  • 模板:$1$
  • 匹配号:-1
  • 默认值:表达式\u匹配
然后在我的脚本中,我使用了${expression}变量

我已经测试了表达式\u matchNr但它给出了匹配数

我应该在“比赛编号:”中输入什么


如果您有以下输出,请提前感谢:

expression=foo
expression_1=foo    
expression_2=bar
expression_3=**what you looking for**
expression_matchNr=3
您可以使用JMeter函数获取
表达式_3
变量的值

根据职能部门:

例如,如果变量A1、A2和N=1:

  • ${A1}
    -正常工作
  • ${A${N}}
    -不起作用(嵌套变量引用)
  • ${{uu V(A${N}}}
    -工作正常。A${N}变为A1,{uu V函数返回A1的值
因此,在您的情况下,无论有多少个匹配项,返回最后一个匹配项的函数如下所示:

${__V(expression_${expression_matchNr})}

请参阅本系列文章,了解函数还可以做些什么。

不幸的是,JMeter core不支持-1、-2…表示极限/倒数第二等符号。不过,您可以使用负前瞻法来查找极限值

我偶然发现了这个问题,对我来说,我用以下方法解决了它:

[\s\S]*("var1":([^\"]+),"var2")(?!$1$)
模板:$2$

说明: 匹配任何内容直到(…1..)-发生在之后无法匹配(…1..)的情况。 返回(…2…)

此外,项目的第一次出现:

 ("var1":([^\"]+),"var2")(?!$1$)[\s\S]*
至于效率,这将整个查询[\s\s]*保存在一个变量中,因此它有点重,我还没有测试它是否占用了太多内存
如果是这样,考虑使用支持最后的对象方法

的JavaScript或jQuery,我们能得到一个例子来更好地理解你想要的吗?你可能想读WHATAVAYouTeReDeCo并显示对StAcExtBoover社区的一些尊重,它强烈鼓励用一个MCVE来共同发布高质量的问题。(代码的最小完整可验证示例)展示您迄今为止所做的尝试。您可能希望更新您的帖子,以达到最低合理的质量水平,并展示您尊重其他StackOverflow贡献成员的意愿。他们是喜欢回答MCVE相关问题的专业人士。享受StackOverflow成员的身份,并支持此社区像这样的tecos咆哮^使这个地方变得更加友好..谢谢,我使用了${uuu V(expression{uu matchNr})变量