我有一个包含以下变量“ nonce = 1ff7de7518b9a52080489ecd7629796d&”的字符串,如何在正则表达式中获取等于和“&”之间的值,我尝试了nonce =(。*?)。+?(?=& )结尾部分排除了“&”,但我无法排除“ nonce =“
注意:尝试匹配“ =”和“&”之间的值将不起作用,因为有许多“ =”和“&”字符将导致超过1个匹配项,唯一字符串为“ nonce” < / p>
这是一个示例https://regexr.com/48vmd
答案 0 :(得分:2)
您可以使用nonce=([^&]+)
来匹配和捕获来自group1的预期字符串
此处nonce=
将按字面匹配,然后([^&]+)
将匹配&
之前的所有文本并捕获到组1中。
如果您的正则表达式样式支持\K
匹配重置运算符,则可以使用此正则表达式nonce=\K[^&]+
使所需的文本完全匹配,而无需捕获任何组文本。
Demo without any grouped capture
如果您使用的是Java,则可以使用此正则表达式,该正则表达式使用后向支持,而Java支持后向支持。
(?<=nonce=)[^&]+
答案 1 :(得分:0)
如果您要查找正则表达式,则只需nonce=(\w+)&
演示(假定View Results Tree侦听器的RegExp测试器模式)
使用Boundary Extractor会更容易,它基本上会提取给定的“左侧”和“右侧”边界之间的所有内容: