@ekzotika

Как вставить предложение в строку в определенном месте?

Допустим, есть такая строка:

<a href="//gifts.ru/catalog/model-futbolka-imperial">Imperial 190</a> — модель премиум-класса, украшение любой акции и достойный персональный подарок. [НУЖНО ЗДЕСЬ ВСТАВИТЬ ТЕКСТ] Мягкая, удобная плотная футболка, с воротником, защищенным от деформации. Отлично держит форму и идеальна для нанесения логотипа. Отсутствие боковых швов позволяет наносить изображение практически по всей поверхности.<br>


Подскажите, как это можно сделать? Хотела делать find('.'), но так не получится, так как точка есть и в ссылке
<a href="//gifts.ru/catalog/model-futbolka-imperial">Imperial 190</a>
. Таких вставок нужно будет сделать много
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
ekzotika, в функцию find можно передавать аргументы.
Попробуйте, так (из кода можете удалить всё, что закомментировано):
link = """
<a href="//gifts.ru/catalog/model-futbolka-imperial">Imperial 190</a> — модель премиум-класса, 
украшение любой акции и достойный персональный подарок.  
Мягкая, удобная плотная футболка, с воротником, защищенным от деформации. 
Отлично держит форму и идеальна для нанесения логотипа. 
Отсутствие боковых швов позволяет наносить изображение практически по всей поверхности.<br>
"""
my_text = "[КАКОЙ-ТО ТЕКСТ ДЛЯ ВСТАВКИ]"


def func_paste_text(link, my_text):
    # список переменных:
    # link: str - переменная, которая содержит текст (ссылку)
    # dlen: int - для записи длины всего текста (всей ссылки)
    # ind: int - для записи номера (позиции), на которой стоит точка
    # my_text: str - текст, который нужно вставить
    # new_link: str - новая ссылка
    if link and my_text:
        # так как первая часть ссылки всегда повторяется
        # то искать точку можно не сначала, а через... 21 символ и до конца строки
        # <a href="//gifts.ru/ - её длина 21 символ
        dlen = len(link)
        ind = link.find(".", 21, dlen)
        new_link = link[0:ind+2] + my_text + link[ind+1:dlen]
        return new_link

print(func_paste_text(link, my_text))


P.S. можно привязаться к закрывающему тэгу '/a'. Посчитать его позицию и уже считать не от 21-го символа, а от позиции закр.тэга.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы