2013-08-30 2 views
2

에 내가 문자열에서 백 슬래시를 삽입하기 위해 노력하고있어 삽입하지만 내가 할 때 :파이썬 ""문자열

s1='cn=Name Surname (123)' 
s1[:17] + '\' + s1[17:] 

나는

SyntaxError: EOL while scanning string literal 

는 또한,이 시도 얻을 수 있지만 삽입 2 백 슬래시

s1[:17] + '\\' + s1[17:] 

마지막 문자열이

01과 같아야합니다
+0

'r '\''을 사용해 보셨습니까? – thegrinner

+1

@ thegrinner,'r '\''은 (는) 유효한 문자열이 아닙니다. 봐 [여기] (http://stackoverflow.com/questions/647769/why-cant-pythons-raw-string-literals-end-with-a-single-backslash) – soon

+2

@thegrinner : 그건 * 하나 * 물건 원시 문자열에서는 할 수 없습니다. 한 슬래시로 끝낼 수는 없습니다. –

답변

5

는 :

>>> s1 = 'cn=Name Surname (123)' 
>>> x = s1[:16]+'\\'+s1[16:-1]+'\\'+s1[-1:] 
>>> x 
'cn=Name Surname \\(123\\)' 
>>> print x 
cn=Name Surname \(123\) 
>>> 

당신은 문자열을 인쇄 할 수 있습니다. 그렇지 않으면 \\ (리터럴 백 슬래시를 표시하는 데 인터프리터에서 사용됨)이 표시됩니다.

4
>>> s1='cn=Name Surname (123)' 
>>> s1[:17] + '\\' + s1[17:] 
'cn=Name Surname (\\123)' 

두 개의 백 슬래시처럼 보이지만 실제로는 백 슬래시가 하나만 포함됩니다.

>>> print(s1[:17] + '\\' + s1[17:]) 
cn=Name Surname (\123) 
>>> print s1[:17] + '\\' + s1[17:-1] + '\\' + s1[-1:] 
cn=Name Surname (\123\) 
+0

인쇄물을 제대로 가지고 있지만 최종 결과가 원하는 것처럼 보이지 않습니다. – iCodez

+0

@iCodez, 코드를 업데이트했습니다. 의견을 주셔서 감사합니다. :) – falsetru

0

다음과 같이 충분합니까? 여기

print(s1.replace('(', '\\(').replace(')', '\\)')) 
+0

그 질문에 대답하지 않습니다. –

+0

@AshwiniChaudhary Right. 나는 그것을 고쳤다. – Germano

+1

"또한 시도했지만 * * ** 2 ** 백 슬래시를 삽입합니다." –

1

파이썬 명령 줄 인터프리터에 입력하고 Enter 키를 누르면 인터프리터에 이스케이프 문자가 표시되므로 두 개의 백 슬래시로 표시됩니다. 그러나 파일에 저장했거나 "print"명령에서 사용한 경우에는 이스케이프 문자가 표시되지 않고 실제 값이 인쇄됩니다.이 경우 백 슬래시가 하나뿐입니다.