반응형
re.sub 교체 패턴에서 그룹 캡처에 대한 역 참조 처리
문자열을 가져 와서 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)를 이스케이프하십시오 .
파이썬은 \1을 ASCII 값 1을 가진 문자로 해석하여 sub.
Python이 \.
coord_re = re.sub(r"(\d), (\d)", r"\1,\2", coords)
자세한 정보가 필요한 경우 re문서 의 시작 부분에서 다룹니다 .
반응형
'Program Club' 카테고리의 다른 글
| JAXB 및 속성 순서 (0) | 2020.11.24 |
|---|---|
| 인터페이스의 속성 / 멤버 변수? (0) | 2020.11.24 |
| git-빈 폴더를 제거하고 변경 사항을 푸시하는 방법은 무엇입니까? (0) | 2020.11.24 |
| Symfony2에서 ObjectManager와 EntityManager의 차이점은 무엇입니까? (0) | 2020.11.24 |
| ConcurrentDictionary.TryAdd가 실패 할 수 있습니까? (0) | 2020.11.24 |