如何制作如下的字符串格式:
${original} = MZ**77050000*******228
${desired} = MZXX 7705 0000 XXXX XXXX 28
我设法将*替换为X,并按如下所示添加空格,但无法将最后3个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
答案 0 :(得分:2)
我将使用String库中的Replace String Using Regexp关键字。我不知道原始字符串的确切条件,但是假设有from pyspark.sql.functions import col, when
df.select(*(count(when(col(c).isNull(), c)).alias(c) for c in df.columns)).show()
,所以7 *******
后跟3位数字,您想将3的第1位数字转换为*
,然后转到*
。
您可以这样做:
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
和{
,因为它们是Robot Framework的特殊字符。因此,此}
与此\\*\{7\}\\d
等效,并且将匹配7个\*{7}\d
,后跟一个数字。
这将是输出,您必须添加空格并完成。