Bonjour,

aujourd'hui je vais exposer un problème auquel je n'ai jamais pris le temps de résoudre, de la bonne façon. Comment remplacer A par B et B par A. Voici un exemple:

« J'aime regarder les tutoriaux de Grafikart tous les matins. »

L'objectif est de remplacer par exemple, les E en A et les A en E. Si vous le faites en deux étapes, vous allez être confronté à un problème : le contexte à changé, car oui, vous avez changé les E en A mais vous ne savez plus où se situe les A qui devait passer en E avant que le contexte ne change. Vous venez de perdre votre repère.

Pour ça, on peut utiliser la méthode tampon. On va le faire en 3 étapes, pour toujours garder un repère dans le contexte, les 3 étapes étant les suivantes :

  • Remplacer les E en --E--
  • Remplacer les A en E
  • Enfin, remplacer les --E-- en A

Dans cet exemple, je commence d'abord par placer mon repère (Peut importe l'ordre, j'aurais pu commencer par les A), et prendra la forme arbitraire suivante : deux -, suivis de la lettre, suivis de deux -.

Cette méthode fonctionne mais n'est pas pratique, cela demande plus de temps pour finaliser la tâche (à la main), on peut donc automatiser tout ça via un programme, oui mais, si le contexte change, comme par exemple, remplacer les E en A et les A par la première lettre de la ligne courante, bien sûr on peut faire ça via un programme, mais il faudra le créer / modifier, et en plus c'est pas quelque chose qui doit nécessairement s'intégrer au projet (tâche n'étant pas redondante, il n'y a pas lieu d'intégrer la méthode)

Du coup, je me suis que, peut-être, regex pouvait être ma solution, mais c'est la le hic.

Es-ce que regex (pcre ou autre) peut apporter une solution simple, à la volée, pour faire cette tâche sans qu'il perd le repère ?, et si oui, comment ?

Merci.

1 réponse


Glaived
Auteur

Pour imposer un TP, le but serait de convertir une configuration qwerty (qui est sous la forme d'un fichier texte, mais pas du json, ni xml, ni... un truc pas officiel quoi) dans une configuration azerty

Donc les A deviennent des Q, les Q deviennent des A etc