我在Robot Framework中使用替换字符串使用Regexp函数来替换“\ |”到“### PIPE ###”但它没有用。
*** Test Cases ***
TestCast1
${result} Replace String Using Regexp Bell|fieldName|11|LastName\|dd \\\| \#\#\#PIPE\#\#\#
结果
Bell###PIPIE###fieldName###PIPIE###11###PIPIE###LastName###PIPE###dd
我的预期结果
Bell|fieldName|11|LastName###PIPE###dd
你能帮我吗?
答案 0 :(得分:0)
使用re.sub()
函数的解决方案(如果输入字符串的最后一个" 管道"部分可能是动态的):
input_str = 'Bell|fieldName|11|LastName\|dd'
result = re.sub(r'\\\|(\w+)$', r'###PIPE###\1', input_str)
print(result)
输出:
Bell|fieldName|11|LastName###PIPE###dd
答案 1 :(得分:0)
让我们尝试一个粗略的想法,这很难看,但它有效.. :)
@toOuter
答案 2 :(得分:0)
我在使用可嵌套的For Loop for Robot Framework时遇到了类似的问题。这是我对正在发生的事情的理论,实际上没有关键字的代码:
事件1:您将输入Bell|fieldName|11|LastName\|dd
,\\\|
和\#\#\#PIPE\#\#\#
发送至Replace String Using Regexp
。这就是你输入的内容。
活动2:Replace String Using Regexp
收到Bell|fieldName|11|LastName|dd
,\|
和###PIPE###
。这会自动发生。
事件3:我假设您的关键字中的某些代码将\|
放入另一个执行实际替换的关键字中。发生这种情况时,\|
会变为|
。然后,当该关键字替换文本时,它会找到|
的四个实例,并用###PIPE###
替换它们。
FIX
事件1:将输入Bell|fieldName|11|LastName\\|dd
,\\\\|
和\#\#\#PIPE\#\#\#
发送至Replace String Using Regexp
。
活动2:Replace String Using Regexp
收到Bell|fieldName|11|LastName\|dd
,\\|
和###PIPE###
。
活动3:\\|
变为\|
。然后,当另一个关键字替换文本时,它会找到\|
的一个实例,并将其替换为###PIPE###
。
根据我在代码中看到的内容,|
不需要文字,因此唯一可以做的就是\
和#
。因此,您发送的内容与Bell|fieldName|11|LastName|dd
,|
和\#\#\#PIPE\#\#\#