原始字符串包含“+”,正则表达式提取器(。+?)用空格替换它。如何用“+”提取

时间:2015-04-13 21:31:12

标签: regex jmeter

(编辑:答案是使用HTTP请求中的'Encode?'选项。请参阅Vinoth的编辑2并在下面发表评论,谢谢!)

这很有趣!

我正在尝试解析一个HTTP响应(让我们举一个具体的例子,

bigH:"2a3a6CEH+iJakQpQtPm8efv"

尝试

时使用正则表达式提取器
bigH:"(.+?)"

它提取字符串但用空格替换字符串中的所有“+”。也就是说,而不是

"2a3a6CEH+iJakQpQtPm8efv" 
它给了我:

"2a3a6CEH iJakQpQtPm8efv"

注意H和i之间的空格。

如何阻止它用空格替换“+”?如果有人能给出解释,我真的很感激。

顺便说一句,我试过了(.+?)(.\++?),甚至([.|\+]+?) - 都没有用:(

谢谢, --Ishtiaque

使用以下屏幕截图进行更新:

添加屏幕截图: POST响应数据: enter image description here

在JMeter中使用正则表达式提取器解析后: enter image description here

在Notepad ++中并排: enter image description here

'Raw'标签显示'+': enter image description here

'HTTP'标签不会: enter image description here

2 个答案:

答案 0 :(得分:1)

尝试使用正则表达式([a-zA-Z0-9+]+)

答案 1 :(得分:1)

当您以JSON格式获得响应时,我会使用 JSON Path Extractor

这似乎比使用正则表达式更容易。

低于JSON Path应该注意从JSON&获取编码的字符串。您应该可以使用${bigH}进行访问。

enter image description here

检查 this 以获取更多详细信息(向下滚动以查看JSON路径提取器详细信息)。


修改

我错了,你得到了JSON格式的回复。您是否正在尝试访问 - bigH:“XXX” - 来自脚本标记?为此,我们必须使用正则表达式提取器或Beanshell。

<script type='text/javascript' charset='utf-8'>

    registerSubmit(document.forms[0].elements['SubmitTopButton']);
    registerSubmit(document.forms[0].elements['SubmitBottomButton']);

    (function($) {
        $(".wb_tsauthall").wb_tsauthall({
            auth    : "Authorize All", 
            unauth  : "Unauthorize All",
            locMsgKeys : []
        });

        $(".wb_newedit").wb_newedit({
            labels:['Job','Code','Work Premium','Flat Rate','Premium','Shift','Sched Times','LTA','Sched Times w Breaks','Delete Details','Employee Holiday','Work Detail','Schedule Detail'],values:[105,103,200,206,204,450,401,500,461,199,900,100,460],bigH:"PVxUbYIODBT31j8IZnPGxF/9O1iuKAkFzTO9WhXu8An8hAUa22tLiWrEHz8v9SIu/NXZH1a5IxO0xYeNwRIYM+3n1kNsrESnhiAYhwhCiqUY9mI4hvEPgAOx7B+MEB8iSIUyNGNZbeGx9nSogFYpNrzmCXirW7Nm9Tn7owPKHmc8dOf5SZ+eDzAOHIB8+5YzQ3bIdFoe60hOMkyd7FiUXtwPcNMUFEjOSMs9JhgIHTE4agpCdbFb6SLuSuLoO9rqxj+9GovUbzTmrxj4faBKZVATNN7iIFyDZHYAZuZRcPJBdUJ1xNHMCWyPZ4p2/Yk0Q0ujdKJbJw9NFysikZgBFNEhNXEA4w8HL1ycYCmZDgSUW1GsumDAKh0Brq3K8Kh2akep8YEjDMWipKgSPaNx3CVY4lf87e0oK70nK/zKGkmpWFvyMnxbkJtWmeuxmPgRZgg2lYbZXFauD1AidnQQhPULJTTV+P+Xkk9PYm3ZkIEcDnYJUmPg/D3iuwg84m2IZatFTdjiNuDAcGNKptTd54yMgohN87c3sRMiZlSY/r88u+Le3BKWJqyl7Xai7Odqz366DFgOzdPi92LnSaggKX++hy+Z04kjyfSZOUYWmiWlc38SUdeTq2v15egig2mMkSLMaUnHagk="
        });


        $("#codeSummaryBar").wb_expandableframe({ 
            iframe : contextPath + '/dailytimesheet/summaryInline.jsp'
        });

        $("#codeSummaryBar").click(function(){$("#codeSummaryBar_expand_collapse_icon").toggleClass("collapse expand");});
        $("#codeSummaryBar").click();


        $("#selectionBar").wb_expandableframe({ 
            iframe : contextPath + '/dailytimesheet/dailySelectInline.jsp',
            onExpand : function() {
    $(".selectionBarControl").css("visibility", "hidden");
    $("#expand_collapse_icon").removeClass("expand").addClass("collapse");
            },
            onCollapse : function() {
    $(".selectionBarControl").css("visibility", "");
    $("#expand_collapse_icon").removeClass("collapse").addClass("expand");
            }
        });



        DTS.onload();



    })(jQuery);

</script>

编辑2:

我怀疑您是否已经检查过HTTP请求中的Encode取消选中

enter image description here