需要协助正则表达式匹配单引号,但不要在结果中包含引号

时间:2012-04-20 17:15:21

标签: regex

我正在尝试找到匹配以下测试字符串的方法:

token = '1866FB352F4DF76BCB92C3482DB7D7B4F562';

我想要的数据是......

1866FB352F4DF76BCB92C3482DB7D7B4F562

我已经尝试了以下内容,我的关闭就是这个,但它包括最后的单引号:

(?!token = ')(\w+)';

现在,另一个密切合作,但它包括最后一个单引号:

'([^']+)'

有人想对此进行刺激吗?

更新:在查看我需要解析的内容后,我在html中找到了相同的值,在表单区域中,看起来可能更容易抓取:

name="token" value="482CD1FE037F68D5A36F4C961A6D57D9"

同样,我只需要value =“*”

中的内容

但是,正则表达式必须解析整个html源代码,所以我假设我需要搜索name =“toke”value =但不包括在结果集中。

1 个答案:

答案 0 :(得分:1)

如果您的正则表达式引擎支持lookaround,则可以使用

(?<=')\w+(?=')   

如果它被单引号包围,则匹配字母数字字,而不将这些引号作为实际匹配的一部分。如果您只想匹配十六进制数字,请使用

(?i)(?<=')[0-9A-F]+(?=')   

编辑:

由于你现在已经添加了你正在使用JMeter,并且因为JMeter不支持lookbehind断言的原因让我无法理解(因为Java本身确实支持它很好),你可能会像这样作弊:

\b[0-9A-F]+(?=')

仅检查整个十六进制数是否出现在'字符之前。它不会检查是否存在开头报价,但可能无关紧要。