반응형
Python Regex는 즉시 그룹을 대체합니다.
정규식 구문을 사용하여 모든 그룹을 직접 대체하는 방법이 있습니까?
일반적인 방법 :
re.match(r"(?:aaa)(_bbb)", string1).group(1)
그러나 나는 다음과 같은 것을 성취하고 싶다.
re.match(r"(\d.*?)\s(\d.*?)", "(CALL_GROUP_1) (CALL_GROUP_2)")
방금 정규식이 캡처 한 그룹에서 새 문자열을 즉시 작성하고 싶습니다.
보세요 re.sub
:
result = re.sub(r"(\d.*?)\s(\d.*?)", r"\1 \2", string1)
이것은 파이썬의 정규식 대체 (바꾸기) 함수입니다. 대체 문자열은 소위 역 참조 (백 슬래시, 그룹 번호)로 채워질 수 있으며 이는 그룹과 일치하는 것으로 대체됩니다. 그룹은 group(...)
함수 와 동일하게 계산됩니다. 즉에서 시작 1
하여 왼쪽에서 오른쪽으로 괄호를 열어서 계산합니다.
받아 들여지는 대답은 완벽합니다. 다음 구문을 사용하여 그룹 참조를 더 잘 얻을 수 있다고 추가합니다.
r"\g<1> \g<2>"
대체 문자열. 이렇게하면 그룹 뒤에 숫자가 올 수있는 구문 제한을 피할 수 있습니다. 다시 말하지만, 이것은 모두 문서에 존재하며 새로운 것은 아니며 때로는 첫눈에 알아 내기가 어렵습니다.
참고 URL : https://stackoverflow.com/questions/14007545/python-regex-instantly-replace-groups
반응형
'Nice programing' 카테고리의 다른 글
외래 키로 복합 키 (0) | 2020.10.09 |
---|---|
grep 출력에 파일 이름 및 줄 번호 표시 (0) | 2020.10.09 |
동일한 파일에서 프로젝트 이름 / 그룹 / 버전과 {source, target} 호환성을 설정하는 방법은 무엇입니까? (0) | 2020.10.09 |
내 Git 구성의 설정은 어디에서 가져 오나요? (0) | 2020.10.09 |
MySql : 읽기 전용 옵션을 부여 하시겠습니까? (0) | 2020.10.09 |