J'ai besoin d'une regex (pour travailler en PHP) pour remplacer les mots anglais américains en HTML par des mots anglais britanniques. Donc, la couleur serait remplacée par la couleur, mètres par mètres et ainsi de suite [Je sais que les compteurs sont aussi un mot anglais britannique, mais pour la copie que nous utiliserons, nous ferons toujours référence aux unités de distance plutôt qu'aux appareils de mesure]. Le modèle aurait besoin de travailler avec précision dans les domaines suivants (un peu contrived) exemples (bien que je ne contrôle pas l'entrée réelle ceux-ci pourraient exister):De quel motif regex ai-je besoin pour cela?
<span style="color:red">This is the color red</span>
[ne doit pas remplacer la couleur dans la balise HTML, mais devrait remplacer dans la phrase]
<p>Color: red</p>
[devrait remplacer mot]
<p>Tony Brammeter lives 2000 meters from his sister</p>
[devrait remplacer les compteurs pour le mot, mais pas au nom]
Je sais qu'il y a des cas limites où le remplacement ne serait pas utile (si son nom était Tony Meter par exemple), mais ceux-ci sont assez rares pour que nous puissions les traiter quand ils se présentent.
Cool. Cela semble avoir bien fonctionné. J'ai dû apporter quelques modifications au code pour le faire fonctionner (DOMTextNode n'a pas fonctionné pour moi, tandis que DOMText l'a fait, en échangeant les arguments autour de $ node-> replaceChild etc), mais jusqu'à présent cela semble avoir bien fonctionné. Le seul petit problème est que je veux faire cela sur les chaînes, et l'utilisation de nouveaux DOMDocument transforme la chaîne en une page HTML avec un doctype etf enveloppé dans les balises html et body. Je peux supprimer cela en utilisant standard str_replace etc (ou, mais y at-il un meilleur moyen qui ne les crée pas en premier lieu? – Apemantus