파이썬 정규표현식에서 \ 처리가 궁금합니다.
조회수 637회
import re
b = '야호\'
a = re.compile('\\')
print(re.sub(a, '@', b)
제가 예상한건 야호@ 인데 일단 컴파일 오류가 나타나네요 제가 예상한대로 할려면 re.compile('\\') 이렇게 해야 된느데 왜 \를 3개를 써야 되는 건가요?
1 답변
-
안녕하세요
import re b = '야호\\' a = re.compile('\\\\') print(re.sub(a, '@', b))
이렇게 하면되는데요 이게.. 검색해보니 스트링 파서가 백스래시 두개를 제거해버린다고 하네요.. 그래서 그냥 슬래시 하나로 인식하기위해 하나를 추가하고 + 파서에서 제거될 2개를 추가해서 4개가 되었네요 ;;
import re b = '야호\\' a = re.compile(r'\\') print(re.sub(a, '@', b))
아니면 원본(raw) 스트링을 표현하는 r 를 앞에 붙이면 파서에서 건들지 않고 넘어가기 때문에 원하는 내용을 얻을수 있습니다 야호!
댓글 입력