从 JMeter 的正则表达式提取器中的字符串“什么是 (123+43)”中提取 123+43 的正则表达式是什么?

What is the regular expression to extract 123+43 from the String 'What is (123+43)?' in the regular expression extractor of JMeter?

本文关键字:123+43 提取 正则表达式 是什么 什么是 JMeter 字符串 什么      更新时间:2023-09-26

实际的 html 响应包含大量数据,其中以下行介于两者之间

<span style="width:50%"><font color="#000000">What is (123+43)?</font></span>

大括号内的数字每次都不同,算术操作数也不同。那么如何使用 JMeter 中的正则表达式提取器获取大括号内的整个字符串呢?

我使用了什么是/(([^)]+))/但我什么也没得到。

我还想知道在提取字符串并将其分配给变量后如何在 JMeter 中执行算术运算。我尝试使用JSR233预处理器,但我不知道如何将结果发送回下一个Http请求。

PS:从"什么是(123+43)?"中提取表达式时,我能实现的最接近的方法是What is (.+?'))但它给出的输出是(123+43)。我也想去掉牙套。那是我被击中的。

我添加正则表达式的地方

https://i.stack.imgur.com/QtugV.png

为了找到两者没有。 您可以单独使用以下表达式,

What is '(('d+)(.)('d+)')'?

JMeter 正则表达式提取器中的模板值将被$1$$2$$3$

如果您的提取器引用名称是 val,则

val_g1 will be 123
val_g2 will be +
val_g3 will be 43

对于添加 2 个编号,您可以在 JMeter 中使用 beanshell 预处理器。向 beanshell 处理器提供提取的值和运算符,并对其执行算术运算,并将结果变量传递给下一个请求。

示例在这里,JMeter Advance功能。

你想要的正则表达式是

(?<=What is '()[-+'d]+(?=')'?)

不要忘记转义反斜杠,例如 "(?<=What is ''()[-+''d]+(?='')''?)" ,如果您将其用作 Java String文字或类似内容。

这使用积极的回溯,在 (?<=) 之间,然后是您要匹配的部分,然后是积极的前瞻,介于 (?=) 之间。 对于您要匹配的部分,我假设任何数字、加号和减号字符串都可以。

试试这个:

What is '((.+?)')'?

希望是有帮助的。