Как я удаляю подстроку из конца строки в Python?

gv запускает визуальный режим и автоматически выбирает то, что вы выбрали ранее.

334
задан Martin Thoma 9 April 2015 в 09:54
поделиться

7 ответов

полоса не означает «удалить эту подстроку». x.strip (y) обрабатывает y как набор символов и удаляет любые символы в этом наборе с концов x .

Вместо этого вы можно использовать , заканчивается на и нарезку:

url = 'abcdc.com'
if url.endswith('.com'):
    url = url[:-4]

Или используя регулярные выражения:

import re
url = 'abcdc.com'
url = re.sub('\.com$', '', url)
496
ответ дан 23 November 2019 в 00:43
поделиться

Это идеальное применение для регулярных выражений:

>>> import re
>>> re.match(r"(.*)\.com", "hello.com").group(1)
'hello'
0
ответ дан 23 November 2019 в 00:43
поделиться

Как насчет URL [: - 4] ?

7
ответ дан 23 November 2019 в 00:43
поделиться

Зависит от того, что вы знаете о своем URL, и от того, что именно вы пытаетесь сделать. Если вы знаете, что он всегда будет оканчиваться на «.com» (или «.net» или «.org»), то

 url=url[:-4]

- самое быстрое решение. Если это более общие URL-адреса, то вам, вероятно, лучше изучить библиотеку urlparse, которая поставляется с python.

Если же вы, с другой стороны, просто хотите удалить все после последнего '.' в строке

url.rsplit('.',1)[0]

будет работать. Или, если хотите, просто хотите все, вплоть до первого '.' затем попробуйте

url.split('.',1)[0]
22
ответ дан 23 November 2019 в 00:43
поделиться
def strip_end(text, suffix):
    if not text.endswith(suffix):
        return text
    return text[:len(text)-len(suffix)]
41
ответ дан 23 November 2019 в 00:43
поделиться

Если вы знаете, что это расширение, то

url = 'abcdc.com'
...
url.rsplit('.', 1)[0]  # split at '.', starting from the right, maximum 1 split

Это одинаково хорошо работает с abcdc.com или www.abcdc.com или ] abcdc. [что угодно] и является более расширяемым.

10
ответ дан 23 November 2019 в 00:43
поделиться

Если вы уверены, что строка появляется только в конце, то самым простым способом было бы использовать «заменить»:

url = 'abcdc.com'
print(url.replace('.com',''))
77
ответ дан 23 November 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: