In Python habe ich eine Funktion erstellt, um ein bestimmtes Wort wie folgt hervorzuheben und auszugeben. Am Ende der Seite befindet sich eine [Codeliste](# Codeliste).
Das ist alles was Sie brauchen.
import re
Erstellen Sie zunächst ein Wörterbuch, um die Textfarbe und die Hintergrundfarbe zu ändern.
Diesmal gelbe Hintergrundfarbe </ font> für `" gelb "` `, <font color =" Red "> rotes Zeichen für` `" rot "`
Ich habe es wie </ font> eingestellt.
color_dic = {'yellow':'\033[43m', 'red':'\033[31m', 'blue':'\033[34m', 'end':'\033[0m'}
Als nächstes legen Sie das Schlüsselwort fest, das Sie hervorheben möchten. Dieses Mal habe ich den Präfekturnamen als Schlüsselwort festgelegt.
keyword = ["Tokio", "Präfektur Chiba", "Saitama", "Präfektur Kanagawa", ...]
Die oben festgelegten Schlüsselwörter werden in der Reihenfolge mit der for-Anweisung durchsucht. Die Reihenfolge der Liste wird hier jedoch wichtig, da es sich je nach Schlüsselwort möglicherweise um eine Teilzeichenfolge eines anderen Schlüsselworts handelt. Zum Beispiel bei der Suche nach einer Stadt, einem Bezirk, einer Stadt oder einem Dorf.
keyword = [... , "Tsu Stadt", "大Tsu Stadt", ...]
Wenn ja, suchen Sie einfach nach dem Wort von links und färben Sie die Treffer wie unten gezeigt.
Die Lösung besteht also darin, die Wörter in der Liste in der Reihenfolge der zunehmenden Anzahl von Zeichen zu sortieren. Dann wird zuerst nach "Otsu City" gesucht, damit das obige Problem nicht auftritt. Unten ist der Code.
#keyword = sorted(keyword, key=lambda x:len(x), reverse=True)
#Sie haben einen besseren Weg aufgezeigt, um in den Kommentaren zu schreiben.
keyword.sort(key=len, reverse=True)
Erstellen Sie schließlich eine Funktion, die den Ausgabetext, die Schlüsselwörter und die Farbspezifikationsinformationen empfängt und ausgibt.
def print_hl(text, keyword, color="yellow"):
for kw in keyword:
bef = kw
aft = color_dic[color] + kw + color_dic["end"]
text = re.sub(bef, aft, text)
print(text)
Das Ausführungsbeispiel lautet wie folgt.
text = "Ich lebe in Tokyo"
print_hl(text, keyword)
das ist alles!
import re
color_dic = {'yellow':'\033[43m', 'red':'\033[31m', 'blue':'\033[34m', 'end':'\033[0m'}
def print_hl(text, keyword, color="yellow"):
for kw in keyword:
bef = kw
aft = color_dic[color] + kw + color_dic["end"]
text = re.sub(bef, aft, text)
print(text)
keyword = ["Tokio", "Präfektur Chiba", "Saitama", "Präfektur Kanagawa"]
keyword.sort(key=len, reverse=True)
text = "Ich lebe in Tokyo"
print_hl(text, keyword)