You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Robot Framework中使用正则表达式移除指定格式数据?

问题描述

原本通过直接指定目标字符串的方式提取数据,代码如下:

${log_line}    Set Variable    {name:abc}[abc@xyz:(pg)]
${cleaned_log}    Remove string    ${log_line}    [abc@xyz:(pg)]
Log ${cleaned_log}

现在想改用正则表达式匹配并移除指定格式的内容,但尝试的代码未达到预期效果,期望输出为{name:abc}:

${log_line}    Set Variable    {name:abc}[abc@xyz:(pq)]
${cleaned_log}    Replace string    ${log_line}    \[.*?\]    ${EMPTY}
Log ${cleaned_log}
解决方法

核心问题是Robot Framework的Replace String关键字仅支持普通字符串匹配替换,不解析正则表达式语法。要实现正则匹配替换,必须使用专门的Replace Regexp String关键字。

修改后的正确代码:

${log_line}    Set Variable    {name:abc}[abc@xyz:(pq)]
${cleaned_log}    Replace Regexp String    ${log_line}    \[.*?\]    ${EMPTY}
Log ${cleaned_log}

这段代码会匹配并移除所有[开头、]结尾的子串,最终输出{name:abc}。

如果需要更精准的匹配(比如只移除字符串末尾的方括号内容,避免误匹配中间的方括号),可以将正则表达式调整为\[[^\]]+\]$,确保只匹配位于字符串末尾的方括号块。

内容的提问来源于stack exchange,提问作者Shraddha Bhandary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 21:57:17