Visualizzazione dei risultati da 1 a 4 su 4

Discussione: espressioni regolari

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    15

    espressioni regolari

    Ciao a tutti...
    so bene che l'argomento non è strettamente legato e perl e cgi, ma le espressioni regolari si usano molto con gli script per cui chiedo a voi...
    sto iniziando ad utilizzare le espressioni regolari e ho bisogno di ripulire alcuni file html dagli script (usando il programma ADVANCED FIND AND REPLACE).
    Per cui dovrei sostituire espressioni del tipo "<SCRIPT ECC.... /SCRIPT>" con nulla, dove con "ECC...." intendo qualsiasi carattere e qualsiasi car.return e newline.
    Io finora sono riuscito a creare l'espressione "<SCRIPT.*\r\n" che elimina tutte le linee che iniziano con "<SCRIPT" ma non riesco a far "procedere" il matching sulle "righe successive" fino a concludersi con "/SCRIPT>"
    Vi ringrazio per l'aiuto!
    Dany.

  2. #2
    Ciao,

    prova questa, non è molto elegante ma mi pare che funzioni:

    $str = qq(<html>
    <head>
    asderft
    <script>vgftryedsw</script>
    gtrfr<script>hjgtr
    njmkt56

    njhfsder
    xcdf</script>lkoi
    nhfrt
    </head>);

    $str =~ s/(.*)<script>.*<\/script>(.*)/$1$2/sg;
    $str =~ s/(<script>.*<\/script>)?//sg;

    print "$str\n";
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    15

    Grazie ma...

    Allego la schermata per farti/vi capire come devo utilizzare le espressioni regolari... non si tratta di scrivere uno script!
    Cosa dovrei scrivere nel campo Regular expression affinchè possa vedere una bella finestra vuota nel campo Result text after transformation?
    Grazie!
    Immagini allegate Immagini allegate

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io farei una cosa del genere:

    In Perl:
    /\<\s*?script.+?\<\s*?\/script\s*?\>//si

    Se non ci sono spazi all'interno delle parentesi angolari, puoi omettere i vari \s*?

    La chiave e` il /s finale, che indica di non fermarsi alla fine della riga

    Nel tuo programma metti solo l'espressione senza le slash nel primo campo e niente nel secondo. Ma devi mettere le opzioni /si da qualche parte. Cerca se e` possibile inserirle.

    In alternativa fai un parsing in Perl o in shell script e non usi il tuo programma.
    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.