2013-08-05 7 views
2

이유를 모르겠지만 파이썬에서 특수 문자 '\'을 대체하고 싶습니다.파이썬에서 ''문자 바꾸기

나는 내에서 '\' 문자가있는 문자열을 가지고 있지만 솔루션을 찾아서 '-'로 바꾸는 것이 좋습니다. 이 내가 대체하기 위해 노력하고있는 동안

>>> x = 'hello\world' 
>>> x 
'hello\\world' 
>>> x.replace('\', '-') 
    File "<stdin>", line 1 
    x.replace('\', '-') 
SyntaxError: EOL while scanning string literal 

편집, 일어나고있는 것입니다 : 가 일식의 IDLE에서 이것을 시도 할

x = 'hello\world' 
print x 
x.replace('\\', '-') 
print x 

출력 :

hello\world 
hello\world 
+1

이스케이프 백 슬래시 : ''hello \\ world '.replace ('\\', '-') ' – falsetru

+0

편집을 확인하십시오! – OpenCurious

+5

@Heliconia :'replace'는 문자열을 변경하지 않고 새로운 문자열을 반환합니다. 여러분이 말할 필요가있는 것은'x = x.replace ('\\', '-')'입니다. – RichieHindle

답변

7

당신은 다른 백 슬래시로 이스케이프해야합니다

x.replace('\\', '-') 

슬래시는 점에서 그들은 문자열로 줄 바꿈과 같은 비 인쇄 문자를 소개하는 데 사용되는 특수 있습니다.

또한 ' 문자를 '라는 인용 문자열에 추가하는 방법입니다.이 문자열은 파이썬이 생각한 것입니다. \'을보고 ' 문자열을 끝내기보다는 문자열 내에서 리터럴 따옴표로 해석합니다. 그런 다음 문자열 끝에 도달하면 문자열의 끝 부분에 EOL ("end of line")이 있습니다.

백 슬래시를 도입하려면이 값을 두 배로 늘려야합니다.

>>> x 
'hello\\world' 

이중 백 슬래시에 유의하십시오.

문자열을 처음 지정할 때 이중 백 슬래시를 사용해야합니다. 그 이유는 필요하지 않기 때문에 \w은 특수 문자가 아니므로 리터럴 백 슬래시 및 w으로 해석됩니다. 당신이 말한대로 'Hello\now'에 줄 바꿈이있는 문자열이 있습니다.

문자열을 과 같이 r 앞에 붙이면 문자열을 "원시"문자열로 표시 할 수도 있습니다. 이 문자열은 특수 문자의 대체에 적합하지 않은 것으로 표시합니다. docs에 따르면

1
\'

특수 문자로 해석됩니다. 그것을 탈출 :

x.replace('\\', '-') 
2

:

백 슬래시 (\) 문자는 줄 바꿈, 백 슬래시 자체 또는 인용 문자로 달리 특별한 의미를 가지고 문자를 탈출하는 데 사용됩니다.

당신은 다른 백 슬래시 백 슬래시를 이스케이프해야합니다 파이썬 당신의 문자열에

x.replace('\\', '-') 
0

이 = '안녕하세요 \ 세계 이 X = "안녕하세요 \ 세계"그래서

로 교체 X 달성하기 위하여는 u를 써야한다

x.replace('\\','-')