반응형
질문
다음과 같은 코드가 있습니다:
url = 'abcdc.com'
print(url.strip('.com'))
원래 예상한 결과: abcdc
실제로 얻은 결과: abcd
이제 다음을 시도합니다
url.rsplit('.com', 1)
더 나은 방법이 있을까요?
첫 번째 시도가 무엇을 하는지에 대한 구체적인 설명은 Python에서 .strip/.rstrip/.lstrip 문자열 메서드가 어떻게 작동하는지에 대한 질문을 참조하세요.
답변
strip
은 "이 부분 문자열을 제거하라"는 의미가 아닙니다. x.strip(y)
는 y
를 문자 집합으로 취급하고 x
의 양 끝에서 해당 집합에 속하는 문자를 제거합니다.
Python 3.9 이상에서는 removeprefix
와 removesuffix
메서드를 사용하여 문자열의 양쪽에서 전체 부분 문자열을 제거할 수 있습니다:
url = 'abcdc.com'
url.removesuffix('.com') # 'abcdc'를 반환합니다
url.removeprefix('abcdc.') # 'com'을 반환합니다
관련 Python Enhancement Proposal은 PEP-616입니다.
Python 3.8 이하에서는 endswith
와 슬라이싱을 사용할 수 있습니다:
url = 'abcdc.com'
if url.endswith('.com'):
url = url[:-4]
또는 정규 표현식을 사용할 수 있습니다:
import re
url = 'abcdc.com'
url = re.sub('\.com$', '', url)
반응형
댓글