首页 > 解决方案 > 用正则表达式替换内容

问题描述

对于robotframework Replace String Using Regexp,我需要编写一个正则表达式,但我是新手,你能帮帮我吗?

需要在每个发生的字符串中进行{{string1.string2.string3.string4}} 转换 ${string1_string2_string3_string4}

所以转换是:

{{ will be ${

}} will be }

.  will be _

例如,我得到一个字符串(或文件..),其中包含 ;

{
"my.value_1{}":{{string1.string2.string3.string4}},
"my_value2.}{":{{string1.string2.string3.string4}},
"my_value3":{{string1.string2}}10.64
}

我希望它是:

{
"my.value_1{}":${string1_string2_string3_string4},
"my_value2.}{":${string1_string2_string3_string4},
"my_value3":${string1_string2}10.64
}

如您所见,仅在格式 {{string1.string2.string3.string4}} 或 {{string1.string2}}... 必须由正则表达式转换。{ } 等字符。如果不像我说的格式,就不能转换。

非常感谢!

标签: regexrobotframework

解决方案


你的例子不是很清楚,下次请更具体的例子。


我假设这是您的初始字符串:

{{string1.string2.string3.string4}}

这是一个理想的结果:

${string1_string2_string3_string4}

您可以通过几个步骤实现:

Substitute
    ${variable}=    Set Variable    {{string1.string2.string3.string4}}    
    ${variable}=    Replace String Using Regexp    ${variable}    [.]    _
    ${variable}=    Replace String Using Regexp    ${variable}    [{]{2}    {
    ${variable}=    Replace String Using Regexp    ${variable}    [}]{2}    }
    ${variable}=    Set Variable    $${variable}
    Log To Console    ${variable}

这将记录到控制台此字符串:

${string1_string2_string3_string4}

推荐阅读