Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Go] Rechercher / Remplacer des string

    25 février 2019 à 16:03:51

    Bonjour à tous,

    Je suis en train d'écrire un programme qui traite des fichiers Markdown et j'aimerais votre avis sur ma facon de traiter les liens.

    En gros, je souhaite remplacer certains liens, de la forme [p://XXXXXXXXX](XXXXX), par une valeur personnalisée. Par exemple :

    # Test
    
    Bonjour, ce lien n'est pas remplacé [http://google.fr](google).
    
    Celui-ci l'est : [p://404](mon lien).

    Ici, le second lien est remplacé par un autre lien.

    J'ai une fonction qui prends en entrée un lien et qui retourne le nouveau lien :

    func modifyLink(link string) string {
        if(strings.HasPrefix("p://")) {
           // Retourner le lien modifié.
        }
    
        return link
    }

    Là où je bloque, c'est sur la façon dont je dois rechercher les liens. J'ai plusieurs idées mais je ne sais pas laquelle est préférable en go :

    • Utiliser une bibliothèque de parsing de MD me simplifierais surement la tâche, mais je n'ai rien trouvé d'interessant et au final j'ai la certitude de pouvoir me contenter d'un simple rechercher/remplacer (il n'y aura pas de lien à remplacer dans des sections de code Markdown par exemple).
    • Je peux parcourir mon fichier, et séparer en plusieurs string les liens (en reconnaissant le motif [XXX](XXXXX)) et enfin traiter les liens via ma fonction modifyLink et en recollant les chaînes.
    • Je pourrais aussi créer ma chaîne au fur et à mesure que je parcours le fichier, et reconnaitre à la volée chaque lien et choisir ou non de le transformer dans la chaine de retour ?
    • Je pourrais aussi passer par une regex peut-être ?

    Quelle est la meilleure solution à votre avis ? Est-ce que je fais fausse route avec ma méthode ?

    Merci de votre aide !

    • Partager sur Facebook
    • Partager sur Twitter

    [Go] Rechercher / Remplacer des string

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown