【问题标题】:Robot Framework String Formatting机器人框架字符串格式化
【发布时间】:2021-01-16 23:51:42
【问题描述】:

如何制作如下字符串格式:

${original} = MZ**77050000*******228  
${desired} =  MZXX 7705 0000 XXXX XXXX 28

我设法将 * 替换为 X,并添加如下空格,但无法将倒数第三个 int 格式化为 X:

${rep_temp} =  Replace String  ${original}    *   X

FOR  ${i}  IN  4  8  12  16  20  22
            ${y} =   Evaluate    ${i} - 4
            ${temp} =       Get Substring     ${rep_temp}    ${y}    ${i}
            ${new_temp} =  Set Variable      ${new_temp} ${temp}
            ${new_temp} =  Strip String      ${new_temp}
            log to console     new_temp-->${new_temp}
        END

【问题讨论】:

    标签: automation automated-tests robotframework


    【解决方案1】:

    我会使用 String 库中的 Replace String Using Regexp 关键字。我不知道原始字符串的确切标准,但假设有 ******* 所以 7 * 后跟 3 位数字,您想将 3 的第一个数字转换为 *,然后转换为 X .

    你可以这样做:

    *** Settings ***
    Library     String
    
    *** Variables ***
    ${original}    MZ**77050000*******228 
    
    *** Test Cases ***
    Test Replace
        ${desired}=    Replace String Using Regexp    ${original}    \\*\{7\}\\d     ********
        ${desired}=    Replace String Using Regexp    ${desired}     \\*     X
        # add the spaces
    

    您必须在机器人文件的正则表达式中使用双重转义,并且您还必须转义 {},因为它们是机器人框架的特殊字符。所以这个\\*\{7\}\\d 和这个\*{7}\d 是等价的,并且会匹配7 个* 后跟一个数字。

    这将是输出,您必须添加空格并完成。

    【讨论】:

    • 它完成了工作,谢谢 (Y),但如果数字发生变化,你有什么建议。提前致谢。
    • 这里是:MZ**44268316*********359
    • @Zain 如果您使用MZ**44268316*******359 尝试我的代码,它应该可以工作。
    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 2019-03-17
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多