首页 > 解决方案 > 如何在正则表达式匹配中排除起始字符串

问题描述

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

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

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

标签: regexjmeter

解决方案


您可以使用nonce=([^&]+)从 group1 匹配和捕获您想要的字符串

这里nonce=将按字面意思匹配,然后([^&]+)将匹配之前的所有文本&并在 group1 中捕获。

演示

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

没有任何分组捕获的演示

如果您使用的是 Java,则可以使用此正则表达式,它使用后看并且 Java 支持后看。

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

使用后视的演示


推荐阅读