다음 코드가 있습니다:
url = 'abcdc.com'
print(url.strip('.com'))
예상: abcdc
I got: abcd
이제 나는
url.rsplit('.com', 1)
더 좋은 방법이 있나요?
스트립은
이 부분 문자열을 제거한다는 의미가 아닙니다. 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)
문자열 마지막에 있는 경우에는 반드시 나타납니다 관심용 약간만이라도 # 39, & # 39, replace& 가장 간단한 방법은 사용할 수 있습니다.
url = 'abcdc.com'
print(url.replace('.com',''))
이 때문에 아직 아무도 abc. 같다 on out:
url = "www.example.com"
new_url = url[:url.rfind(".")]
이 방법을 사용하여 보다 더 효율적으로 사용할 수 없으므로 분할합니다 한다 ' ()' 이 솔루션을 사용할 수 있는 몇 가지 새로운 목록을 작성하고 객체인지 문장열 점.
달려 있는 것이 무엇인지 정확히 알고, re 트레이언 할 경우 url 및 환경에 관한 you& # 39 이 끝나는 & # 39 는 항상 .com& 알잖나. # 39;; (또는 # 39, & # 39 .net&. # 39, & # 39 또는 .org&;) 그럼
url=url[:-4]
가장 빠른 솔루션이므로 있다. # 39 더 일반적인 경우, 아마도 그 url 을 it& you& # 39 더 re 보았으매 꽂으십시오 우를퍼스 라이브러리란 함께 제공되는 파이썬.
반면 경우 모든 # 39, & # 39 마지막 .& 후 제거할 됩니다. 그 후 문자열로
url.rsplit('.',1)[0]
작동합니다. 모든 것이 첫 번째 & # 39, 또는 스케쳐내 그냥 최대 .& # 39. 그럼 해봐
url.split('.',1)[0]
Url 을 (as) 에 의해 주어진 예제에서와 항목를 일부가 될 것으로 보인다.), 1 개의 이렇게 뭔가 할 수 있다.
import os
url = 'http://www.stackoverflow.com'
name,ext = os.path.splitext(url)
print (name, ext)
#Or:
ext = '.'+url.split('.')[-1]
name = url[:-len(ext)]
print (name, ext)
모두 극복할 출력: ' (& # 39, & # 39, # 39 .com& http://www.stackoverflow& # 39;;;)'
이 결합할 수도 있습니다 (접미어입니다) ',' 스트리엔즈비트 그냥 아무 것도 할 경우, 또는 특정 " 분할합니다 .com".
import re
def rm_suffix(url = 'abcdc.com', suffix='\.com'):
return(re.sub(suffix+'$', '', url))
이 질문에 내가 원하는 대로 반복하려면 표현 방법이 가장 do it. 물론 다음 조치를 취할 것이라고 적은 CPU 시간
def rm_dotcom(url = 'abcdc.com'):
return(url[:-4] if url.endswith('.com') else url)
그러나 CPU 는 파이썬 쓰기 병 목에 왜?
Cpu 는 한 때 목 아무튼?? ) 에서 드라이버 수도 있을 것 같아요.
활용도는 코드를 사용하여 정규식이 장점이 있다. # 39, & # 39 .me& 와일드링이 다음 제거할 수 있습니다. 대뿐입니다 있는 3 자?
이 같은 코드를 해야한다고 의심하게 된다.
>>> rm_sub('abcdc.me','.me')
'abcdc'
def remove_file_type(infile):
import re
return(re.sub('\.[^.]*$','',infile))
remove_file_type('abc.efg')'abc'
그래서 제가 올리는 데 필요한 내 경우에는 예외가 없었다.
class UnableToStripEnd(Exception):
"""A Exception type to indicate that the suffix cannot be removed from the text."""
@staticmethod
def get_exception(text, suffix):
return UnableToStripEnd("Could not find suffix ({0}) on text: {1}."
.format(suffix, text))
def strip_end(text, suffix):
"""Removes the end of a string. Otherwise fails."""
if not text.endswith(suffix):
raise UnableToStripEnd.get_exception(text, suffix)
return text[:len(text)-len(suffix)]