У меня есть строка. Как удалить весь текст после определенного символа? (В этом случае ...
)
Текст после воли ...
изменения, так что я, поэтому я хочу, чтобы удалить все символы после определенного один.Как удалить все символы после определенного символа в python?
ответ
Сплит на вашем сепараторе не более одного раза, и принять первый кусок :
sep = '...'
rest = text.split(sep, 1)[0]
Вы не сказали, что должно произойти, если разделитель отсутствует. И это, и решение Alex вернут всю строку в этом случае.
Запрос «удалить весь текст после» разделителя, а не «получить» этот текст, поэтому я думаю, что вы хотите [0], а не [-1], в отличном от вас решении. –
Работал отлично, потому что я уверен, что Айман и Алекс сделали так же, так что спасибо всем. – Solihull
Используйте rsplit(), если вам нужно разделить символ, начиная с конца строки. – Samuel
Без RE (который я предполагаю, что вы хотите):
def remafterellipsis(text):
where_ellipsis = text.find('...')
if where_ellipsis == -1:
return text
return text[:where_ellipsis + 3]
или с RE:
import re
def remwithre(text, there=re.compile(re.escape('...')+'.*')):
return there.sub('', text)
Можете использовать sep = '...' как kwarg и использовать len (sep) вместо жесткого кодирования 3, чтобы сделать его немного более надежным в будущем. – cdleary
Да, но тогда вам нужно перекомпилировать RE для каждого вызова, поэтому производительность для решения RE (нет реальной разницы для решения без RE). Некоторая общность бесплатна, некоторые не ... ;-) –
@Alex - Спасибо за тестирование решений! –
Предполагая, что ваш разделитель «...», но это может быть любая строка.
text = 'some string... this part will be removed.'
head, sep, tail = text.partition('...')
>>> print head
some string
Если разделитель не найден, head
будет содержать все исходную строку.
Функция разделения была добавлена в Python 2.5.
раздел (...) S.partition (сентябрь) -> (голова, Сентябрь, хвост)
Searches for the separator sep in S, and returns the part before it, the separator itself, and the part after it. If the separator is not found, returns S and two empty strings.
Еще одно отличное решение - нарушаем ли мы TOOOWTDI?) Возможно, стоит потратить время на проверку ... –
.partition wins - 0.756 usec за цикл, vs 1.13 для .split (форматирование комментариев на самом деле не позволяет мне показывать точные тесты, но я использую текст и разделитель @ Ayman) - так, +1 для @ Ayman's ответ! –
и btw, для полноты, решение на основе RE составляет 2,54 мкс, т. Е. Медленнее, чем у Ayman's или @ Ned. –
еще один простой способ использования повторно будет
import re, clr
text = 'some string... this part will be removed.'
text= re.search(r'(\A.*)\.\.\..+',url,re.DOTALL|re.IGNORECASE).group(1)
// text = some string
Если вы хотите удалить все после последнего появления разделителя в строке, я считаю, что это хорошо работает:
<separator>.join(string_to_split.split(<separator>)[:-1])
Например, если string_to_split
это путь, как root/location/child/too_far.exe
и вы хотите только путь к папке, вы можете разделить на "/".join(string_to_split.split("/")[:-1])
и вы получите root/location/child
Кроме того, вы можете изменить этот -1 на любой индекс, являющийся тем случаем, при котором вы удаляете текст. – theannouncer
- 1. Как удалить символы после определенного символа числа
- 2. Удалить все после определенного символа
- 3. Удалить символы после определенного символа в Autohotkey
- 4. Удалить все символы после определенного символа в нескольких имен файлов
- 5. Удалить все символы после определенного символа из строки в Swift
- 6. Excel - удалить символы после определенного символа
- 7. Как удалить все после определенного символа в строке?
- 8. Python: удалить все, включая и после определенного символа строки
- 9. Удалить все символы после первого символа
- 10. Удалить все символы после определенного набора символов
- 11. Как удалить все символы из строки до определенного символа
- 12. Python - удалить конкретную информацию после определенного символа?
- 13. TWIG - удалить все после определенного символа
- 14. Smarty Удалить все после определенного символа
- 15. Извлечь символы в URL после определенного символа до определенного символа
- 16. Удалить все символы до определенного символа в массиве
- 17. Как пропустить все символы из строки после появления определенного символа
- 18. удалить символы в строке после определенного события
- 19. Как удалить все в строке после определенного символа?
- 20. Как удалить все после определенного символа в строке?
- 21. Заменить все символы определенного символа в строке
- 22. Python - Как удалить остальную строку после определенного слова/символа
- 23. Как удалить все символы после одного символа в строке?
- 24. Удалить символы из определенного символа указателя
- 25. Удалить пробел после определенного символа
- 26. Regex заменить все после определенного символа внутри определенного тега
- 27. Удалить символы после определенного символа для динамических заголовков
- 28. Как удалить все символы после определенного символа в каждой строке в perl?
- 29. Regex - Получить все символы после каждого экземпляра определенного символа
- 30. Как удалить символ после определенного символа
Если вы не уверены в том, что это имеет смысл, затем обновите свой вопрос, чтобы предоставить конкретные примеры того, что вы хотите сделать. –