jmeter - 我的正则表达式不起作用。试图得到 2 个字符串之间的响应

问题描述 投票:0回答:3

我收到了这样的回复。

</api/sale/mailboxApplications/confirm-email?verificationCode=SPTp%2FMl6Dbmqn3%2BlN0nsIfBIqmAN16Tc%2F4Hy30VIjb50US%2FRHRlzoKFRg4JjFBxeHmpecJCaiuZwtUCtVL3ELQDfw2USXHQt6Nmx87KUSzepmhlWvcXLgwLqL0vYR2Py4%2B6Fu9TIijAPrWbxPJ%2F9eelmqfzGrtxbd8Vu9u9LcrI%3D&amp;applicationId=3c77be27-98bd-4fac-bbf8-cfa201ce1a24

/api/sale/mailboxApplications/confirm-email?verificationCode=%2B1YDDRKZUi7D5nMsArlhnn6eOPtIp6aWM%2BVv6fg8OjzcBcPQI5bAQq3pHuJq8O7T0LmRrzfcwrd71VfZ2VCHVUOSGCaSa1np6XYQ0sswIPBFzepUMFi%2FynWRvrNhgA0fhvsC56nNArhYPcnghsTnRyUod%2BiS6u6CDTlYvmqzKsc%3D&amp;applicationId=733f125b-61bd-4876-aded-ed95f02da4c4 </pre>

我的问题是我无法从此响应中获取“verificationCode”,它位于“verificationCode=”和“&”之间

我尝试了这种正则表达式,但没有一个起作用:

(?<=verificationCode=)(.*\n?)(?=&amp)
(?<=verificationCode=).*?(?=&amp)
(?<=verificationCode=)(.+)(?=&amp)
(?<=verificationCode=)(.*)(?=&amp)

jmeter 每次都会返回“0”作为默认值。

我已经检查了https://regex101.com/中的每个正则表达式,它们在那里运行良好 我错过了什么?

regex testing jmeter stress-testing
3个回答
0
投票

没关系。 我放了

verificationCode=(?s)(.*)&amp
并将组号设置为$1$

工作正常


0
投票

如果您想获得两个字符串之间的内容,只需使用边界提取器,您所需要做的就是提供“左”和“右”边界,它将获得中间的所有内容

更多信息:JMeter 中的边界提取器与正则表达式提取器

如果您仍在寻找正则表达式,它会是这样的:

verificationCode=(.+?)&amp


0
投票

作为参考,无需捕获该值,因为您正在使用 Positive Look-around 语法。

对于示例,以下“match”将仅返回两个值内的文本。

(?<=verificationCode=).+(?=&amp;)

如果您确实计划捕获,请删除 look-around 语法,因为这会无缘无故地使完成的步骤量加倍。

verificationCode=(.+)&amp;
© www.soinside.com 2019 - 2024. All rights reserved.