Выделение элементов в тексте

В общем, надо искать и выделять определенные слова в тексте.
Как искать и выделять отдельные слова, я понимаю, но как сделать что бы искались вариации этого слова в разном регистре, не до конца понятно.
Предполагаю надо юзать:
lower()
Даже, наверное так вот, за одно:
lower().replace(" ", "")
Но это работает со строками, а python-docx я строк в синтаксисе вообще не нашел.
Можно ли docx документ разбить на строки что бы применить
lower().replace(" ", "")
Вот то, что получилось написать:
import docx from docx.enum.text import WD_COLOR_INDEX document = docx.Document("C:/Users/test.docx") a = 'слово' for paragraph in document.paragraphs: if a in paragraph.text: for run in paragraph.runs: if a in run.text: x = run.text.split(a) run.clear() for i in range(len(x)-1): run.add_text(x[i]) run.add_text(a) run.font.highlight_color = WD_COLOR_INDEX.YELLOW document.save("C:/Users/test.docx")
| Здесь вы можете заказать любую студенческую или школьную работу. |
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Выделение повторяющихся элементов в тексте
Ребята, добрый день, Подскажите пожалуйста как справиться с задачкой, нужно в блоке с текстом.
Выделение хэштэгов в тексте
Как можно было это сделать проще или как можно упростить мой вариант? public class.

Выделение слова в тексте
Добрый день! Необходимо выделить определенные заранее известные слова в ячейке с текстом. .

Выделение подстроки в тексте
Ввести строку текста и найти в ней пары слов,разделенные запятыми. Например, при вводе строки "Не.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Поочередное выделение слова в тексте
Как мне сделать, чтобы по нажатию произвольной клавиши поочередно выделялось заданное слово в.
выделение (подсветка) слов в тексте
Скажите, как реализовать выделение (подсветку) цветом произвольного слова в допустим <p>тексте</p>.
Выделение слов и букв в тексте
Нужна помощь, товарищи! Требуется написать программу, которая: выводит текст на экран дисплея;.
Выделение лишних пробелов в тексте
Вывод текста на экран(текст произвольный) #include <stdio.h> #include <Windows.h> #include.
Поиск и выделение слова в тексте
Подскажите пожалуйста как сделать такую вещь: В текстовом поле написано 2013.04 >> Color black .
Выделение ключевых слов в тексте
#-o Народ, подскажите такую вещь. Насколько актуально выделение ключевых слов тегом <strong>.

Выделение абзаца в выбранном тексте
Здравствуйте, имеется выделенный текст, в этом выделенном тексте несколько абзацев (параграфов).
Или воспользуйтесь поиском по форуму:
Как выделить текст между маркерами?
Я хочу сделать с помощью ‘re’, но на последних двух строках кода он считает и маркеры. Можно ли это исправить? Результат должен быть такой:
assert between_markers('What is >apple', '<') == "apple", "One sym" assert between_markers("My new site ", "", " ") == "My new site", "HTML" assert between_markers('No[/b] hi', '[b]', '[/b]') == 'No', 'No opened' assert between_markers('No [b]hi', '[b]', '[/b]') == 'hi', 'No close'
Отслеживать
51.6k 201 201 золотой знак 65 65 серебряных знаков 246 246 бронзовых знаков
задан 7 дек 2020 в 15:18
Михайло Савчук Михайло Савчук
Как выделить слово жирным шрифтом?
Всем привет, у меня появилась такая проблемка с телеботом. У меня получается есть мини-бот, пользователь отправляет ему текст с городом и тот показывает ему погоду в этом городе.
Я хочу сделать, чтобы при обратной отправке сообщения ботом, город выделялся жирным шрифтом, но как это грамотно сделать, я так и не смог найти.
Ниже будет только часть функции, мне нужно, чтобы message.text выделялась жирным шрифтом.
@bot.message_handler(content_types=['text']) def send_echo(message): mgr = owm.weather_manager() observation = mgr.weather_at_place( message.text ) w = observation.weather temp = w.temperature('celsius')["temp"] clouds = w.detailed_status ans = "В городе " + message.text + " сейчас - " + clouds + "." + "\n" ans += "Температура в данный момент: " + str(round(temp)) + "°." + "\n\n"

Вот скрин, надо чтобы «Москва» выделялась жирным шрифтом(взято как пример, а так любой другой город):
- Вопрос задан более трёх лет назад
- 7061 просмотр
Комментировать
Решения вопроса 1
tfosk @tfosk Автор вопроса
Получилось выделить слово, которое я хотел, но появилась вторая проблемка, после вывода сообщения, следующее
сообщение не выводится. Как добавить ветвление ещё туда?
Вот, код как у меня получилось выделить сообщение:
bot.send_message(message.chat.id, f"В городе сейчас - \n" + "Температура в данный момент: " + str(round(temp)) + "°." + "\n\n", parse_mode='html')
Так и вот это мне нужно, чтобы вместе со всем выводилось, но как?
if temp < 10: ans +=("Тебе лучше сегодня надеть, что-нибудь потеплее, а то там холодновато.") elif temp < 20: ans +=("На улице и не тепло, и не жарко.") else: ans +=("Ну тепло, иди в трусах)")
Ответ написан более трёх лет назад
Тогда так и нужно, сначала сформировать текстовую строку с форматированием и разными условиям, а потом уже выводить ее через send_message.
ans = f"В городе сейчас - \n" + "Температура в данный момент: " + str(round(temp)) + "°." + "\n\n" if temp < 10: ans +=("Тебе лучше сегодня надеть, что-нибудь потеплее, а то там холодновато.") elif temp < 20: ans +=("На улице и не тепло, и не жарко.") else: ans +=("Ну тепло, иди в трусах)") bot.send_message(message.chat.id, ans, parse_mode='html')
Как выделить текст на странице с помощью Python Selenium
Автоматизирую тест-кейс с помощью Python Selenium. Дохожу до очередного шага, а там написано «Проверка копирования названия отчетов» и скриншот, где виден выделенный заголовок.
Т.е. кто-то навёл мышку на начало заголовка, зажал правую кнопку, дотянул до конца заголовка, и отпустил. А теперь, нужно это дело повторить, чтобы убедиться, что текст можно выделить.
Я потратил несколько часов, чтобы реализовать данный шаг. Чего только не делал. В итоге, получилась вот такая функция, на базе запуска js.
def select_string_by_css(self, css_selector): script1 = f"var rttt = document.createRange();" \ f"rttt.selectNode(document.querySelector(''));" \ f"document.getSelection().removeAllRanges();" \ f"document.getSelection().addRange(rttt);" script2 = f"return document.getSelection().toString();" self.browser.driver.execute_script(script1) return str(self.browser.driver.execute_script(script2)).split("\n")[0]
Функция принимает на вход css-селектор элемента, где находится заголовок, а возвращает содержимое выделения.
В ходе тестов выяснилось, что на выход иногда попадают переносы строк и даже какие-то фрагменты текста из соседних областей. Пришлось обрезать по значку переноса строк.
Код выкладываю как есть. Поскольку функция является методом класса, там присутствует self.
self.browser.driver — это объект Webdriver.
А вот и сам js. Вытащил его с какого-то сайта и добавил чуть-чуть отсебятины.
var rttt = document.createRange(); var css_selector = "h1"; rttt.selectNode(document.querySelector('')); document.getSelection().removeAllRanges(); document.getSelection().addRange(rttt); var result = document.getSelection().toString();
Таким образом, селектор будет в переменной css_selector, а результат (в нашем случае — выделенный текст) — в переменной result.
A******e — 400 RUB Аноним — 250 RUB Vitashy — 200 RUB Даша — 120 RUB CoRRRn — 100 RUB Лена — 100 RUB Ленин — 100 RUB Любовь — 100 RUB Anna — 100 RUB Владимир — 50 RUB A******e — 400 RUB Аноним — 250 RUB Vitashy — 200 RUB Даша — 120 RUB CoRRRn — 100 RUB Лена — 100 RUB Ленин — 100 RUB Любовь — 100 RUB Anna — 100 RUB Владимир — 50 RUB
Оставляю здесь, чтобы снова не искать долго-долго-долго.
С вами был Доктор Лексиум.
Всего доброго.