Visualizzazione dei risultati da 1 a 4 su 4

Discussione: aiuto per programmino

  1. #1

    aiuto per programmino

    ho scritto questo script che mi rileva se all'interno di una frase c'è una sottostringa con una email.

    #!/usr/local/bin/perl
    $a = $ARGV[0];
    print $a;
    if($a =~ /\w\@\w+\.\w+/) {
    print $&;
    print "\n";
    }


    purtroppo mi dà dei problemi, ad esempio se nella frase ci sono spazi fa il confronto solo con le lettere precedenti al primo spazio.
    Inoltre vorrei farmi scrivere l'email trovata mentre invece
    $& scrive tutta la stringa (inoltre la scrive 2 volte e non so perché!)

    Sapete darmi una mano?
    www.valeweb.net

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non ho mai usato il $&, anche perche` sconsigliato dal manuale (problemi di performance).

    Invece io userei il $1 :
    codice:
    if($a =~ /\W([\w\.]+\@(\w+\.)*\w+)\W/) {
    print "$1\n"; 
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    con $1 non mi scrive niente (presumo poi vada inserito non fra apici)
    www.valeweb.net

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    IL $1 si riferisce alla prima parentesi individuata dalla RE.

    Si usa come una variabile, quindi va scritto tra virgolette (non fra apici).

    Piuttosto allarga il filtro dato dalla RE: magari la ho scritta troppo restrittiva.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.