2017-01-21 1 views
0

"\ |"대신 "Robote 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

과 같은 입력 문자열을 게시 할 수 있습니까? – RomanPerekhrest

+0

Input String = Bell | fieldName | 11 | LastName \ | dd 적절하지 않습니까? –

+0

정규 표현식 함수는 무엇입니까? – snow

답변

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 
0

이야는 해보자 거친 아이디어, 그것은 못생긴지만 작동 .. ..

${result} Replace String Using Regexp Bell|fieldName|11|LastName\|dd \\|dd \#\#\#PIPE\#\#\#dd 
Log To Console \n\n${result} 
0

Ih robots 프레임 워크를위한 중첩 가능한 For 루프에서 작업하는 동안 비슷한 문제가 발생합니다.

이벤트 1 : 여기에 무슨 일이 일어나고 있는지, 산세가 실제로 키워드의 코드를 가진 나의 이론 당신은 Bell|fieldName|11|LastName\|dd, \\\|\#\#\#PIPE\#\#\#Replace String Using Regexp에 대한 입력을 보낼 수 있습니다. 그것이 당신이 타이핑 한 것입니다.

이벤트 2 : Replace String Using RegexpBell|fieldName|11|LastName|dd, \|###PIPE###을 수신합니다. 이것은 자동으로 발생합니다.

이벤트 3 : 귀하의 키워드에있는 일부 코드가 \|을 실제 교체 할 다른 키워드에 넣었다고 가정합니다. 이 경우 \||으로 바뀝니다. 그런 다음 해당 키워드가 텍스트를 바꿀 때 |의 네 가지 인스턴스를 찾고 모두를 ###PIPE###으로 바꿉니다.

FIX

이벤트 1 : Bell|fieldName|11|LastName\\|dd, \\\\|\#\#\#PIPE\#\#\#Replace String Using Regexp에 대한 입력을 보냅니다.

이벤트 2 : Replace String Using RegexpBell|fieldName|11|LastName\|dd, \\|###PIPE###을 수신합니다.

이벤트 3 : \\|\|이됩니다. 그런 다음 다른 키워드가 텍스트 바꾸기를 수행하면 \|의 인스턴스를 찾아 ###PIPE###으로 바꿉니다.

코드에서 볼 수 있듯이 |에는 리터럴이 필요하지 않으므로 \#이 유일한 것입니다. 따라서 전송 한 내용은 기본적으로 Bell|fieldName|11|LastName|dd, |\#\#\#PIPE\#\#\#