Search code examples
regexjmeterpost-processing

How can I get the last match in regular extracor expression in jmeter?


I would like to extract the last occurence of regular expression in Jmeter. I used Regular Extractor expression to do this, but I can't got the last occurence.

I tried this :

  • Regular expression: "var1":([^"]+),"var2"
  • Template : $1$
  • Match No : -1
  • Default value : expression_matchNr

Then in my script I used ${expression} variable

I've tested expression_matchNr but it give me the number of match.

What should I put in "Match No:" ?

Thanks in advance


Solution

  • If you have the following output:

    expression=foo
    expression_1=foo    
    expression_2=bar
    expression_3=**what you looking for**
    expression_matchNr=3
    

    You can use JMeter's __V function to get value of expression_3 variable

    As per function's description:

    For example, if one has variables A1,A2 and N=1:

    • ${A1} - works OK
    • ${A${N}} - does not work (nested variable reference)
    • ${__V(A${N})} - works OK. A${N} becomes A1, and the __V function returns the value of A1

    So in your case the function, returning last match no matter how many matches are will look like:

    ${__V(expression_${expression_matchNr})}
    

    See How to Use JMeter Functions post series on what else can be done with functions.