使用正则表达式提取器提取值?

时间:2019-05-28 20:34:28

标签: regex jmeter

enter image description here enter image description here我正在尝试从以下代码中提取值。即使我的regex表达式很好,它仍然没有提取值。

token" value="(.+?)"

这确实给了我使用regex101.com检查的确切匹配项

<input type="hidden" name="token" value="GSYGEP2UUWOTMZ2SFV1G5D2M8L247KIG">

正则表达式应该是什么

2 个答案:

答案 0 :(得分:0)

您的原始正则表达式就可以了:

value="(.+?)"

可能是其他空格,或代码有问题。如果需要,让我们删除token"或尝试转义"

DEMO 1

DEMO 2

参考:

答案 1 :(得分:0)

尝试

<input(?=(?:[^>"']|"[^"]*"|'[^']*')*?\sname\s*=\s*(['"])\s*token\s*\1)(?=(?:[^>"']|"[^"]*"|'[^']*')*?\svalue\s*=\s*(['"])((?:(?!\2)[\S\s])*)\2)\s+(?:"[\S\s]*?"|'[\S\s]*?'|[^>]*?)+>

您追求的价值内容在 Capture Group 3

https://regex101.com/r/HJhStT/1
https://regex101.com/r/8BWONb/1

解释

 < input                # Input tag

 (?=                    # Name attribute: Assert (a pseudo atomic group)
      (?: [^>"'] | " [^"]* " | ' [^']* ' )*?
      \s name  \s* = \s*     # name = 
      ( ['"] )               # (1), Quote
      \s* token \s*          # token
      \1 
 )
 (?=                    # Value attribute
      (?: [^>"'] | " [^"]* " | ' [^']* ' )*?
      \s value  \s* = \s*    # value =
      ( ['"] )               # (2), Quote
      (                      # (3 start), value content
           (?:
                (?! \2 )
                [\S\s] 
           )*
      )                      # (3 end)
      \2 
 )
 # Just get rest of tag
 \s+ 
 (?: " [\S\s]*? " | ' [\S\s]*? ' | [^>]*? )+
 >