Программа работает правильно в том случае, если в анализируемом тексте нет пустых строк. Надо переделать, чтобы пустые строки не мешали ей анализировать текст и чтобы в выводе эти пустые строки не были удалены. Ещё косяк, что в выводе, если вводить запрос в нижнем регистре, а в анализируемом тексте он в верхнем, то в выводе будет в нижнем (видно на скриншоте, с этим в принципе можно мириться).
С таким текстом правильно работает:
Эта тема требует уже другого названия - как приделать к амперметру покупную зарядк
Да и чтобы все сразу и по мановению волшебной палочки
А с таким нет:
Эта тема требует уже другого названия - как приделать к амперметру покупную зарядк
Да и чтобы все сразу и по мановению волшебной палочки
Выражение f использует специальный форматированный текст, называемый ANSI Escape Sequence, для подсветки текста.
ANSI Escape Sequence - это последовательность символов, используемых для управления выводом на терминал или другую консоль. Они начинаются с символа \033, за которым следуют один или несколько кодов, определяющих действие, которое должно быть выполнено. В данном случае код 1;31m указывает на то, что текст должен быть выведен красным цветом. Код 0m указывает на то, что все текущие форматы должны быть удалены.
Python:
import re
def text_editor():
print("Введите текст (для окончания ввода введите пустую строку (нажмите два раза Enter)):")
text = ""
while True:
line = input()
if line:
text += line + "\n"
else:
break
search1 = input("Введите первый фрагмент для поиска: ")
search2 = input("Введите второй фрагмент для поиска: ")
# Поиск и подсветка первого фрагмента
highlighted_text = re.sub(re.escape(search1), f"\033[1;31m{search1}\033[0m", text, flags=re.IGNORECASE)
# highlighted_text = re.sub(re.escape(search1), f"\033[1;31m{search1}\033[0m", text, flags=re.IGNORECASE)
# Поиск и подсветка второго фрагмента
highlighted_text2 = re.sub(re.escape(search2), f"\033[1;32m{search2}\033[0m", highlighted_text, flags=re.IGNORECASE)
print("Результат:")
print(highlighted_text2)
text_editor()
С таким текстом правильно работает:
Эта тема требует уже другого названия - как приделать к амперметру покупную зарядк
Да и чтобы все сразу и по мановению волшебной палочки
А с таким нет:
Эта тема требует уже другого названия - как приделать к амперметру покупную зарядк
Да и чтобы все сразу и по мановению волшебной палочки
Выражение f использует специальный форматированный текст, называемый ANSI Escape Sequence, для подсветки текста.
ANSI Escape Sequence - это последовательность символов, используемых для управления выводом на терминал или другую консоль. Они начинаются с символа \033, за которым следуют один или несколько кодов, определяющих действие, которое должно быть выполнено. В данном случае код 1;31m указывает на то, что текст должен быть выведен красным цветом. Код 0m указывает на то, что все текущие форматы должны быть удалены.
Вложения
Последнее редактирование: