J'ai fait plusieurs tests avec le if et j'en ai conclu que:
si un mot de la liste apparait, pour la 1ere fois dans le texte, encadré par certains caractères non mots, alors il faut obligatoirement que dans le reste du texte, ce mot apparaisse encadré avec les memes caractères spéciaux et pas avec d'autres.
Exemple: un des mots de la liste est "mot"
texte:
le mot à chercher est un mot de 5 lettres
"mot" apparait 2 fois.
Dans les 2 cas, il apparait de la meme façon (un espace avant et après)
Alors les 2 occurences de "mot" sont surlignées
=> OK
texte:
le mot à chercher ,mot de 5 lettres
"mot" apparait 2 fois
Mais la 1ere fois, on a un espace avant et après, alors que pour la 2eme occurence, on a une virgule avant et un espace après.
Alors seule la 1ère occurence de "mot" est surlignée
=> pas OK
texte:
le ,mot à chercher mot de 5 lettres
"mot" apparait 2 fois
Mais la 1ere fois, on a une virgule avant et un espace après, alors que pour la 2eme occurence, on a un espace avant et après.
Alors seule la 1ère occurence de "mot" est surlignée
=> pas OK
texte:
le ,mot à chercher est un ,mot de 5 lettres
"mot" apparait 2 fois.
Dans les 2 cas, il apparait de la meme façon (une virgule avant et un espace après)
Alors les 2 occurences de "mot" sont surlignées
=> OK
Dans les 4 exemples, si je teste avec le while, toutes les occurences sont surlignées dans tous les cas, sauf que les balises #titre# et ##titre## encadrant le mot, apparaissent autant de fois qu'il y a d'occurences du mot. Donc je ne peux pas utiliser le while car il me faut une seule fois les balises #titre# et ##titre## pour chaque occurence.
Un même mot dans le texte apparait de plusieurs façons (avec un espace avant et après, avec une virgule avant et un espace après, avec un espace avant et une virgule après, avec un espace avant et une parenthèse après....). Or il faut que dans tous ces cas, je puisse surligner ce mot et l'encadrer par #titre# et ##titre## à chaque apparition dans le texte.
Donc auriez-vous une idée de comment modifier le code pour résoudre ce problème?
Merci.
Partager