programing

python re.sub 그룹: \number 뒤의 숫자

sourcejob 2022. 9. 21. 23:27
반응형

python re.sub 그룹: \number 뒤의 숫자

교환 방법foobar와 함께foo123bar?

이것은 동작하지 않습니다.

>>> re.sub(r'(foo)', r'\1123', 'foobar')
'J3bar'

이 방법은 다음과 같습니다.

>>> re.sub(r'(foo)', r'\1hi', 'foobar')
'foohibar'

이런 일이 있을 때 흔히 있는 문제인 것 같아요.\number어떻게 대처해야 하는지 힌트 주실 분?

답은 다음과 같습니다.

re.sub(r'(foo)', r'\g<1>123', 'foobar')

관련 문서 발췌:

위에서 설명한 문자 이스케이프 및 백레퍼런스와 더불어 \g는 (?P...) 구문에 의해 정의된 이름이라는 그룹에 의해 일치하는 서브스트링을 사용합니다.\g는 대응하는 그룹번호를 사용합니다.따라서 \g<2>는 \2와 동일하지만 \g<2>0과 같은 치환에서는 애매하지 않습니다.\20은 그룹 2에 대한 참조가 아니라 그룹 20에 대한 참조로 해석되며 문자 '0'이 이어집니다.back reference \g < 0 >는 RE와 일치하는 서브스트링 전체를 대체합니다.

언급URL : https://stackoverflow.com/questions/5984633/python-re-sub-group-number-after-number

반응형