Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 正则表达式提取特定值<;输入>;标签_Html_Regex_Jmeter - Fatal编程技术网

Html 正则表达式提取特定值<;输入>;标签

Html 正则表达式提取特定值<;输入>;标签,html,regex,jmeter,Html,Regex,Jmeter,我的目标是使用正则表达式从HTML文档中提取具有特定名称的标记的值。守则的有关部分如下: <!-- hidden datas --> <p class="hidden"> <input type="hidden" name="token" value="6ac2c9b7d56b483ad6b9db051a285637" /> <input type="hidden" name="id_pro

我的目标是使用正则表达式从HTML文档中提取具有特定名称的标记的值。守则的有关部分如下:

<!-- hidden datas -->
        <p class="hidden">
            <input type="hidden" name="token" value="6ac2c9b7d56b483ad6b9db051a285637" />
            <input type="hidden" name="id_product" value="541" id="product_page_product_id" />
            <input type="hidden" name="add" value="1" />
            <input type="hidden" name="id_product_attribute" id="idCombination" value="" />
        </p>

我需要提取字母数字字符6ac2c9b7d56b483ad6b9db051a285637 不幸的是,除了通过正则表达式,没有其他方法

同样的标记也出现在文档的另一部分中。也许在这段代码中更容易提取

        <script type="text/javascript" src="/webshop/js/tools.js"></script>
    <script type="text/javascript">
        var baseDir = '/webshop/';
        var static_token = '6ac2c9b7d56b483ad6b9db051a285637';
        var token = '1799f145490151b92137df1493a520cc';
        var priceDisplayPrecision = 2;
    </script>

var baseDir='/webshop/';
var static_token='6ac2c9b7d56b483ad6b9db051a285637';
var标记='1799f145490151b92137df1493a520cc';
var-priceDisplayPrecision=2;

在第二个示例中,以下正则表达式将捕获令牌:


/var static_token='([0-9a-f]{32})/

使用JMeter的正则表达式提取器组件来提取字符串, 表达将是,

static_token \= '(\w+)';

Template : $1$
Match no : 1 

这将提取指定变量中的值。

JMeter文档中有一个与您想要实现的目标非常匹配的示例:

就你而言:

<input type="hidden" name="token" value="([^"]+)" />

我建议使用以下方法获取它:

  • 添加XPath提取器作为返回该响应的请求的子级
  • 添加一些有意义的内容作为
    引用名
    ——它将是一个保存结果的JMeter变量名,即
    标记
  • 如果响应不符合XHTML,请选中
    使用Tidy
  • 在“XPath查询”输入中使用以下XPath表达式:

  • 如果需要,请将提取的值引用为
    ${token}
  • 有关XPath语言的更多信息,请参阅以下参考资料:


    使用正则表达式也可以工作,但是对于复杂的多行HTML,最好使用XPath或提取器。有关说明,请参阅。

    您可以使用
    jsoup
    ()起初我无法理解文档的这一部分,但现在我明白了。谢谢!好的答案是Dmitri t的答案。Regexp不适用于JMeter中的HTML好的答案是Dmitri t的答案。Regexp不适用于HTML好的答案是Dmitri t的答案。Regexp不适用于HTML
    //input[@name='token']/@value