【问题标题】:Jmeter Regex trim spaceJmeter正则表达式修剪空间
【发布时间】:2021-09-20 08:58:13
【问题描述】:

我想用正则表达式提取器获取 CSRF 值。

然后将该变量用于我的 post 参数。

但是csrf参数有空格。

如何摆脱那个空间?感谢您的帮助

这是我使用的源 csrf

【问题讨论】:

    标签: regex jmeter


    【解决方案1】:

    我在正则表达式中没有得到? 的要求,它单独捕获每个字符作为完全匹配和捕获组1。查看演示here。但是,如果此特定用例需要 jmeter,您可以添加它。

    .+ 捕获任何字符,包括空格字符。

    您可以使用(\S+) 捕获所有非空格字符,因为中间没有空格字符,也可以使用(\w+) 捕获所有单词字符,因为您的字符串中只有字母和数字。

    编辑

    对不起,我第一次弄错了你的问题。这是一个正则表达式,它在第一个捕获组上捕获 csrfmiddlewaretoken 的值字段。

    name="csrfmiddlewaretoken"\svalue="\s?(\w+)"
    

    Regex Demo

    这应该省略密钥中的任何前导空格字符。如果这不起作用,我怀疑您在将提取的值分配给变量的位置添加了一个额外的空间。

    【讨论】:

    • 太棒了。让我知道那是否进展顺利。您还可以使用regex101.com 玩游戏并学习正则表达式
    • 您是否也尝试在群组中使用?
    • 我更新了我的答案。如果您可以在正则表达式上添加纯文本而不是图像,这样人们就可以复制和使用输入/输出样本来尝试事情,那就太好了。希望我的编辑能解决您的问题。
    【解决方案2】:
    \s*([1-9]+.*?)
    

    试试这个看看。

    更新

    试试这个:这一定行得通。

    name="csrfmiddlewaretoken"\svalue="([^”]+?)"
    

    【讨论】:

      【解决方案3】:
      1. 仔细检查您分配变量的位置,正则表达式提取器本身不会在任何地方添加任何空格,您可以使用Debug Sampler and View Results Tree listener combination检查提取的变量值。

      2. Using regular expressions for parsing HTML is not the best idea,我建议改用CSS Selector Extractor,相关配置就这么简单:

      更多信息:CSS Selector Reference

      【讨论】:

        猜你喜欢
        • 2015-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多