【问题标题】:Regular expression to extract values with delimiter使用分隔符提取值的正则表达式
【发布时间】:2015-10-03 18:35:53
【问题描述】:

我想从包含分隔符 $ 的字符串中提取值并将它们存储在三个变量中。我需要这个来传递我的 Jmeter 脚本中的变量值。

输入:

“蓝天航空$630$270$12:23”

这里的分隔符是 $,所以我需要将以下值存储在单独的变量中:

蓝天航空,630、270、12:23

所需输出:

var1 = 蓝天航空公司,var2 = 630,var3 = 270,var4=12:23

请帮忙。我正在尝试各种组合,但它不起作用。我只需要可以在 JMETER 中使用的正则表达式即可。

【问题讨论】:

标签: regex jmeter


【解决方案1】:

我们必须按照以下格式设置正则表达式值

Blue Skies Airlines\$([0-9]+)\$([0-9]+)\$(.+)

并在Jmeter中获取如下值

$1$ as 630
$2$ as 270
$3$ as 12:37

【讨论】:

    【解决方案2】:

    您可以使用 JSR223 后处理器(任何其他后处理器,如 Beanshell 也可以)。添加一个 JSR223 后处理器,选择语言为javascript。将要拆分的字符串保存在变量中,并在后处理器中添加以下代码:

    var str=vars.get("stringtosplit").toString();
    var strArray = str.split("$");
    vars.put("userResponse",strArray);
    

    这里stringtosplit 是包含要拆分的字符串的变量。该函数会将生成的字符串数组保存在变量userResponse中。

    【讨论】:

    • 感谢 Ruchit...但是如何访问字符串变量:我使用了 ${userResponse_g1}$...它不起作用..请帮助
    • 我需要在 JSR223 后处理器中的要传递的参数部分添加一些内容吗?
    • 在调试采样器中,我看到响应为 userResponse=[Ljava.lang.String;@24f2f2
    • 我将脚本修改为: var str=vars.get("inFlight").toString(); var strArray = str.split("$"); vars.put("userResponse",strArray);字符串 userResponse1 = Arrays.toString(userResponse);它仍然无法正常工作..请帮助
    • 您可以使用 jmeter 的 ForEach 控制器来处理数组变量。 jmeter.apache.org/usermanual/…
    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多