我正在尝试找到匹配以下测试字符串的方法:
token = '1866FB352F4DF76BCB92C3482DB7D7B4F562';
我想要的数据是......
1866FB352F4DF76BCB92C3482DB7D7B4F562
我已经尝试了以下内容,我的关闭就是这个,但它包括最后的单引号:
(?!token = ')(\w+)';
现在,另一个密切合作,但它包括最后一个单引号:
'([^']+)'
有人想对此进行刺激吗?
更新:在查看我需要解析的内容后,我在html中找到了相同的值,在表单区域中,看起来可能更容易抓取:
name="token" value="482CD1FE037F68D5A36F4C961A6D57D9"
同样,我只需要value =“*”
中的内容但是,正则表达式必须解析整个html源代码,所以我假设我需要搜索name =“toke”value =但不包括在结果集中。
答案 0 :(得分:1)
如果您的正则表达式引擎支持lookaround,则可以使用
(?<=')\w+(?=')
如果它被单引号包围,则匹配字母数字字,而不将这些引号作为实际匹配的一部分。如果您只想匹配十六进制数字,请使用
(?i)(?<=')[0-9A-F]+(?=')
编辑:
由于你现在已经添加了你正在使用JMeter,并且因为JMeter不支持lookbehind断言的原因让我无法理解(因为Java本身确实支持它很好),你可能会像这样作弊:
\b[0-9A-F]+(?=')
仅检查整个十六进制数是否出现在'
字符之前。它不会检查是否存在开头报价,但可能无关紧要。