• # Les regex c'est riche

    Posté par . En réponse au message modification de fichier html en masse avec perl. Évalué à 1.

    Si tu ne fais que des transformations avec perl, autant toutes les faire en une fois. Sinon ton .bak ne va pas servir à grand chose.
    Tu peux donc directement mettre tes commandes de substitution dans un fichier commençant par:
    #!/usr/bin/perl -i.bak -p -0777

    Ensuite pour matcher une chaine non suivi d'une autre, c'est (?!motif)
    Voici un mini-memento des assertions de largeur nulle (ils ne sont pas compté dans la chaine matché) bien pratique:
    (?=motif) - Suivi de
    (?!motif) - Non suivi de
    (?<=motif) - Précédé de
    (?<!motif) - Non précédé de


    Donc pour tes besoins ça donne
    s/<script>.*?<\/script>//gi;
    s/(?<=\shref=['"])(?!http:\/\/)/ssfoo\//gi;