JMeter的复杂正则表达式

时间:2017-09-14 04:57:01

标签: regex jmeter

需要从JMeter中的字符串中捕获以下值

<input id="__TriDocumentName" type="hidden" 
value="C%3A%5CWindows%5CTEMP%2Fdocuments%5CBIRTDOCtDY1z2sxwRM6nzf2s7UGO0S%5C20170913_061108_464%5CBalance+Sheet+Report28082017.rptdocument"/> 

要捕获的值:20170913_061108_464

这将是什么样的正则表达式?

请注意,此处BIRTDOCtDY1z2sxwRM6nzf2s7UGO0S值也是动态的。

4 个答案:

答案 0 :(得分:0)

  1. 右键单击要从中提取动态值的采样器,然后添加&gt; Post Processors&gt;正则表达式提取器。
  2. “应用于”复选框:如果示例具有请求嵌入资源的子样本,则有用。此参数定义将是正则表达式,仅应用于主样本结果或嵌入式资源。您可以根据您的要求选择
  3. “要检查的响应字段”复选框。此参数定义应应用正则表达式的字段。
  4. 在正则表达式字段中:您必须找到要提取的值的左边界和右边界,例如这是我的回答“某事日期:”20170913_061108_464“有些价值”,那么我的正则表达式将是[date:“(。+?)”]其中(date:“)是右边界而(”)是左边界< /强>

  5. 模板。用于从找到的匹配项创建字符串的模板。这是一个包含特殊元素的任意字符串,用于引用正则表达式中的组。引用组的语法是:'$ 1 $'表示组1,'$ 2 $'表示组2,等等。$ 0 $表示整个表达式匹配的内容。因此,如果您在回答“经济学”一词并搜索正则表达式“(ec)(onomics)”并应用模板$ 2 $$ 1 $而不是输出变量,您将收到“onomicsec”。

  6. 匹配¹。如果有多个字符序列,则允许指定,应该使用哪个变体。重要的提示。如果将“应用于”设置为“主样本和子样本”并指定“匹配¹”= 3,则JMeter将从第二个子样本中选择匹配序列,因为第一个将是主样本。如果指定为零,则JMeter将随机选择匹配。如果您指定负数,例如“-2”
  7. 要调用提取的值,请使用引用名称后跟$ sign。

答案 1 :(得分:0)

在%5C之后使用带有日期模式的正则表达式提取器,直到下一个%:

test = np.random.randint(0,255,(480,960,3)) # random RGB
out = [test[area] for area in list_of_areas]

答案 2 :(得分:0)

使用具有以下模式的正则表达式提取器

  

正则表达式:[A-Z] +%5C([0-9 _] +)%5

     

模板:$ 1 $

     

比赛编号:1

答案 3 :(得分:0)

以下代码正常运作。

<input id="__TriDocumentName" type="hidden" value="C%3A%5CWindows%5CTEMP%2Fdocuments%5C.*?%5C(.*?)%5CBalance\+Sheet\+Report28082017.rptdocument"