대체 패턴에서 그룹 캡처에 대한 역참조 처리
나는 그 끈을 가지고 싶습니다.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).
Python은 다음을 해석합니다.\1ASCII 값이 1인 문자로, 이를 에 전달합니다.sub.
파이썬이 해석하지 않는 원시 문자열 사용\.
coord_re = re.sub(r"(\d), (\d)", r"\1,\2", coords)
자세한 내용은 설명서의 첫머리에 설명되어 있습니다.
언급URL : https://stackoverflow.com/questions/8157267/handling-backreferences-to-capturing-groups-in-re-sub-replacement-pattern
'programing' 카테고리의 다른 글
| 스프링 @자동 배선 속성 대 세터 (0) | 2023.08.07 |
|---|---|
| pkl 파일의 압축을 푸는 방법은? (0) | 2023.08.07 |
| HTML에서 세로줄을 만드는 방법 (0) | 2023.08.07 |
| 테이블 열 너비 설정 (0) | 2023.08.07 |
| Windows OS에서 MySQL 또는 MariaDb에 TokUdb 플러그인 사용 (0) | 2023.08.02 |