[PYTHON] 파이썬에서 이중 백 슬래시를 단일 백 슬래시로 바꾸는 방법은 무엇입니까?
PYTHON파이썬에서 이중 백 슬래시를 단일 백 슬래시로 바꾸는 방법은 무엇입니까?
나는 문자열이 있습니다. 이 문자열에는 이중 백 슬래시가 있습니다. 이중 백 슬래시를 단일 백 슬래시로 바꾸므로 유니 코드 char 코드를 올바르게 구문 분석 할 수 있습니다.
(Pdb) p fetched_page
'<p style="text-align:center;" align="center"><strong><span style="font-family:\'Times New Roman\', serif;font-size:115%;">Chapter 0<\\/span><\\/strong><\\/p>\n<p><span style="font-family:\'Times New Roman\', serif;font-size:115%;">Chapter 0 in \\u201cDreaming in Code\\u201d give a brief description of programming in its early years and how and why programmers are still struggling today...'
이 문자열 안에 이스케이프 처리 된 유니 코드 문자 코드 (예 :
\\u201c
나는 이것을 다음과 같이 바꾸고 싶다.
\u201c
시도 1 :
fetched_page.replace('\\\\', '\\')
하지만 이것은 작동하지 않습니다 - 그것은 4 배의 백 슬래시를 찾습니다.
시도 2 :
fetched_page.replace('\\', '\')
그러나 이로 인해 라인 오류가 발생합니다.
시도 3 :
fetched_page.decode('string_escape')
그러나 이것은 본문에 아무런 영향을 끼치 지 않았다. 모든 이중 백 슬래시는 이중 백 슬래시로 유지됩니다.
해결법
-
==============================
1.codecs.escape_decode를 시도해보십시오. 이스케이프 시퀀스를 디코딩해야합니다.
codecs.escape_decode를 시도해보십시오. 이스케이프 시퀀스를 디코딩해야합니다.
-
==============================
2.나는 당신이 묘사하는 행동을 얻지 못한다.
나는 당신이 묘사하는 행동을 얻지 못한다.
>>> x = "\\\\\\\\" >>> print x \\\\ >>> y = x.replace('\\\\', '\\') >>> print y \\
출력에서 '\\\\'을 볼 때, 각이 이스케이프되기 때문에 문자열에있는 수만큼 슬래시가 두 번 표시됩니다. 작성한 코드는 잘 작동합니다. REPL이 어떻게 표시하는지 보지 않고 실제 값을 출력하려고합니다.
-
==============================
3.Jeremy의 대답을 확장하기 위해 \ '는 인용 부호를 이스케이프하므로 문자열이 종료되지 않으므로'\ '는 잘못된 문자열입니다.
Jeremy의 대답을 확장하기 위해 \ '는 인용 부호를 이스케이프하므로 문자열이 종료되지 않으므로'\ '는 잘못된 문자열입니다.
-
==============================
4.약간 과잉이라고 할지도 모르지만 ...
약간 과잉이라고 할지도 모르지만 ...
>>> import re >>> a = '\\u201c\\u3012' >>> re.sub(r'\\u[0-9a-fA-F]{4}', lambda x:eval('"' + x.group() + '"'), a) '“〒'
그래, 가장 간단한 해결책은 ms4py의 대답이다. 문자열에 codecs.escape_decode를 호출하고 결과 (또는 escape_decode가 파이썬 3에서와 같이 튜플을 반환하면 결과의 첫 번째 요소)를 가져온다. 하지만 Python 3에서는 문자열 작업 (바이트 객체가 아닌)을 할 때 codecs.unicode_escape_decode를 사용하려고합니다.
-
==============================
5.그냥 인쇄해라.
그냥 인쇄해라.
>>> a = '\\u201c' >>> print a \u201c
from https://stackoverflow.com/questions/6752485/how-to-replace-a-double-backslash-with-a-single-backslash-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 함수의 복사본을 만드는 법 [duplicate] (0) | 2018.11.23 |
---|---|
[PYTHON] 암호에 특수 문자가 포함되어있을 때 연결 문자열 작성 (0) | 2018.11.23 |
[PYTHON] "튜플 목록"을 평면 목록 또는 행렬로 변환합니다. (0) | 2018.11.23 |
[PYTHON] matplotlib로 플롯의 구석에 작은 이미지를 삽입하는 방법? (0) | 2018.11.23 |
[PYTHON] 파이썬 : -u 옵션의 중요성? (0) | 2018.11.23 |