如何在正则表达式匹配中排除起始字符串

时间:2019-02-23 18:44:55

标签: regex jmeter

我有一个包含以下变量“ nonce = 1ff7de7518b9a52080489ecd7629796d&”的字符串,如何在正则表达式中获取等于和“&”之间的值,我尝试了nonce =(。*?)。+?(?=& )结尾部分排除了“&”,但我无法排除“ nonce =“

注意:尝试匹配“ =”和“&”之间的值将不起作用,因为有许多“ =”和“&”字符将导致超过1个匹配项,唯一字符串为“ nonce” < / p>

这是一个示例https://regexr.com/48vmd

2 个答案:

答案 0 :(得分:2)

您可以使用nonce=([^&]+)来匹配和捕获来自group1的预期字符串

此处nonce=将按字面匹配,然后([^&]+)将匹配&之前的所有文本并捕获到组1中。

Demo

如果您的正则表达式样式支持\K匹配重置运算符,则可以使用此正则表达式nonce=\K[^&]+使所需的文本完全匹配,而无需捕获任何组文本。

Demo without any grouped capture

如果您使用的是Java,则可以使用此正则表达式,该正则表达式使用后向支持,而Java支持后向支持。

(?<=nonce=)[^&]+

Demo using look behind

答案 1 :(得分:0)

如果您要查找正则表达式,则只需nonce=(\w+)&

演示(假定View Results Tree侦听器的RegExp测试器模式)

enter image description here

使用Boundary Extractor会更容易,它基本上会提取给定的“左侧”和“右侧”边界之间的所有内容:

enter image description here