본문 바로가기
파이썬

파이썬 re.sub 교체 패턴에서 그룹 캡처에 대한 역 참조 처리

by º기록 2020. 9. 25.
반응형

문자열 0.71331, 52.25378 을 가져 와서 0.71331,52.25378 을 반환합니다. 즉, 숫자, 쉼표, 공백 및 숫자를 찾아 공백을 제거합니다. .

이것은 내 현재 코드입니다.

coords = '0.71331, 52.25378'
coord_re = re.sub("(\d), (\d)", "\1,\2", coords)
print coord_re

그러나 이것은 0.7133,2.25378 을 제공합니다. 내가 뭘 잘못하고 있죠?

 

해결 방법

 

정규식에 원시 문자열을 사용해야합니다. 다음을 시도하십시오.

coord_re = re.sub(r"(\d), (\d)", r"\1,\2", coords)

현재 코드에서는 교체 문자열의 백 슬래시가 숫자를 이스케이프하므로 chr (1) + ","+ chr (2) 에 해당하는 모든 일치 항목을 교체합니다.

>>> '\1,\2'
'\x01,\x02'
>>> print '\1,\2'
,
>>> print r'\1,\2'   # this is what you actually want
\1,\2

문자열에 백 슬래시를 남기고 싶을 때마다 r 접두사를 사용하거나 각 백 슬래시 ( \\ 1, \\ 2 )를 이스케이프하십시오.

 

참조 페이지 https://stackoverflow.com/questions/8157267

 

 

반응형

댓글