• [^] # Re: Slurp mode

    Posté par . En réponse au message grep multi-ligne. Évalué à 3.

    En fait il faut comprendre que dans ce mode, il n'y a effectivement qu'une seule ligne (tres longue). Ton while() ne fait qu'un tour; de même, dans ta regexp, le "^" de début de ligne est aussi un début de fichier.


    Je connais tres peu perl en fait, mais un exemple de script qui traine chez moi itère sur le fichier en capturant les morceaux de fichiers autour de la regexp de cette façon:


    # Ads deleter in HTML
    undef $/; # enable "slurp" mode
    $Tstart ="<!--Start of Ad -->";
    $Tend ="<!--End of Ad-->";
    while (<>) {
    while ( /(.*)$Tstart.*?$Tend(.*)/s ){ $_= "1ドル2ドル";}
    print "$_";
    }


    Et pour matcher des frontières de "vraie ligne" sans ^ ni ,ドル on peut utiliser \n (c'est un peu crade...)

    Si un expert en perl passe ici et veut bien prendre le relai...