다음 코드가 있습니다.
url = 'abcdc.com'
print(url.strip('.com'))
기대했다: abcdc
나는 얻었다 : abcd
지금은
url.rsplit('.com', 1)
더 좋은 방법이 있습니까?
답변
strip
“이 하위 문자열 제거”를 의미하지는 않습니다. 문자 집합으로 x.strip(y)
취급 y
하고의 끝에서 해당 문자 집합을 제거합니다 x
.
대신 다음을 사용 endswith
하고 슬라이싱 할 수 있습니다 .
url = 'abcdc.com'
if url.endswith('.com'):
url = url[:-4]
또는 정규 표현식 사용 :
import re
url = 'abcdc.com'
url = re.sub('\.com$', '', url)
답변
문자열이 끝에 만 나타나는 것이 확실한 경우 가장 간단한 방법은 ‘바꾸기’를 사용하는 것입니다.
url = 'abcdc.com'
print(url.replace('.com',''))
답변
def strip_end(text, suffix):
if not text.endswith(suffix):
return text
return text[:len(text)-len(suffix)]
답변
아무도 이것을 지적하지 않은 것처럼 보이기 때문에 :
url = "www.example.com"
new_url = url[:url.rfind(".")]
이것은 split()
새로운리스트 객체가 생성되지 않을 때 사용하는 방법보다 효율적이어야하며 ,이 솔루션은 여러 개의 점이있는 문자열에서 작동합니다.
답변
URL에 대해 알고있는 것과 정확히 무엇을 시도하는지에 따라 다릅니다. 항상 ‘.com'(또는 ‘.net’또는 ‘.org’)으로 끝나는 것을 알고 있다면
url=url[:-4]
가장 빠른 솔루션입니다. 좀 더 일반적인 URL이라면 파이썬과 함께 제공되는 urlparse 라이브러리를 살펴 보는 것이 좋습니다.
반면에 마지막 ‘.’이후에 모든 것을 제거하고 싶을뿐입니다. 문자열로
url.rsplit('.',1)[0]
작동합니다. 또는 첫 번째 ‘.’까지 모든 것을 원한다면 다음 시도
url.split('.',1)[0]
답변
그것이 확장이라는 것을 알고 있다면
url = 'abcdc.com'
...
url.rsplit('.', 1)[0] # split at '.', starting from the right, maximum 1 split
이것은와 동일하게 작동 abcdc.com
하거나 www.abcdc.com
또는 abcdc.[anything]
더 확장이다.
답변
한 줄로 :
text if not text.endswith(suffix) or len(suffix) == 0 else text[:-len(suffix)]