En Python, j'ai créé une fonction pour mettre en évidence et afficher un mot spécifique comme suit. Il y a une [Liste de codes](# Liste de codes) à la fin de la page.
C'est tout ce dont vous avez besoin.
import re
Commencez par créer un dictionnaire pour changer la couleur du texte et la couleur d'arrière-plan.
Cette fois, si `" yellow "` `, <font background-color = # FFCC00> couleur de fond jaune </ font>, if
"red" `` `, caractères rouges Je l'ai défini comme </ font>.
color_dic = {'yellow':'\033[43m', 'red':'\033[31m', 'blue':'\033[34m', 'end':'\033[0m'}
Ensuite, définissez le mot-clé que vous souhaitez mettre en surbrillance. Cette fois, j'ai défini le nom de la préfecture comme mot-clé.
keyword = ["Tokyo", "Préfecture de Chiba", "Saitama", "Préfecture de Kanagawa", ...]
Les mots-clés définis ci-dessus seront recherchés dans l'ordre avec l'instruction for, mais l'ordre de la liste devient ici important, car selon le mot-clé, il peut s'agir d'une sous-chaîne d'un autre mot-clé. En effet, cela peut être le cas, par exemple lors de la recherche d'une ville, d'un quartier, d'une ville ou d'un village.
keyword = [... , "Ville de Tsu", "大Ville de Tsu", ...]
Si, recherchez simplement le mot de la gauche et colorez les résultats comme indiqué ci-dessous.
La solution est donc de trier les mots de la liste par ordre croissant de caractères. Ensuite, "Otsu City" sera recherché en premier, le problème ci-dessus ne se produira donc pas. Ci-dessous le code.
#keyword = sorted(keyword, key=lambda x:len(x), reverse=True)
#Vous avez souligné une meilleure façon d'écrire dans les commentaires.
keyword.sort(key=len, reverse=True)
Enfin, créez une fonction qui reçoit le texte de sortie, les mots-clés et les informations de spécification de couleur, et les génère.
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)
L'exemple d'exécution est le suivant.
text = "Je vis à tokyo"
print_hl(text, keyword)
c'est tout!
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 = ["Tokyo", "Préfecture de Chiba", "Saitama", "Préfecture de Kanagawa"]
keyword.sort(key=len, reverse=True)
text = "Je vis à tokyo"
print_hl(text, keyword)
Comment sortir une sortie colorée sur la console
Recommended Posts