Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente bannato
    Registrato dal
    Oct 2000
    Messaggi
    18

    Escludere porzione testo da elaborazione

    Ciao a tutti.
    Sto realizzando uno script che riceve il textarea di un form, e lo codifica (non so qual'è il termine adatto 'bash','parse'.. bho!) in modo da visualizzare link, immagini, e altri tag di formattazione.

    Per fare questo avevo pensato ad utilizzare il regexp, che mi permette tramite questo comando di trovare i match dei tag.
    codice:
    objRegEx.Pattern = "(\[\[)[^\]\]]*(\]\])"
    Quello che vorrei fare io è modificare quel pattern in maniera tale che mi trovi i match, solo se NON sono compresi tra due tag di Escape : <nocode> </nocode>

    In pratica un testo del genere :
    codice:
    Ciao, [[questa]] è una <nocode>[[prova]]</nocode>
    dovrebbe essere trasformato dal codificatore in un testo con '[[questa]]' che diventa un link con url 'questa.asp' mentre '[[prova]]' essendo compreso tra i due tag di Escape, dovrebbe rimanere così com'è scritto, cioè con le due parentesi quadre attorno.

    Pensavo ad una leggera modifica del pattern così da dirgli di evitare gli spazi compresi tra i due tag di escape, e ho provato a fare così :
    codice:
    objRegEx.Pattern = "(<nocode>)*(\[\[)[^\]\]]*(\]\])(<\/nocode>)*"
    ma ovviamente non funziona, ed è questo il motivo per cui chiedo aiuto.
    Non mi intendo molto dei pattern delle regular exp, quindi se gentilmente potreste darmi una mano ve ne sarei molto grato.

    Se avete anche qualche bel link da cui posso trovare documentazioni varie ed eventuali sul tema...

    grazie

  2. #2
    Potresti escludere le porzioni di testo comprese tra i tag <nocode> e </nocode> PRIMA di applicare le regexp, per esempio con questa funzioncina:
    codice:
    function RemoveNocodeTags(txt)
      dim tmptxt
      tmptxt = txt
    
       if IsNull(tmptxt) then
        exit function
      end if
    
      dim i, pos1, pos2
       do
        pos1 = Instr(tmptxt, "<nocode>")
       if pos1=0 then
          exit do
        else
           pos2 = Instr(pos1, tmptxt, "</nocode>")
           if pos2=0 then
            exit do
          else
            tmptxt = Left(tmptxt, pos1-1)&Mid(tmptxt, pos2+9)
          end if
        end if
      loop
      RemoveNocodeTags = tmptxt
    end function
    in modo che, se il tuo testo è

    codice:
    testo
    il tuo testo senza la parte tra i tags <nocode> e </nocode> sarà:

    codice:
    testofiltrato = RemoveNocodeTags(testo)
    Poi, sul testofiltrato, applicherai le regexp..........

    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  3. #3
    Utente bannato
    Registrato dal
    Oct 2000
    Messaggi
    18
    Sai perchè non mi è congegnale così come mi hai consigliato?
    Perchè può accadere che ce ne sia più di una di parte da rimuovere dal controllo regexp,
    e per di più, il codice che ho rimosso con quella funzione, a me serve ancora.

    L'elaborazione infatti avviene al momento della richiesta di visualizzazione del testo.

    Grazie cmq, della tua funzione ne farò un'altro uso ^_^

  4. #4
    La funzione "funziona" anche nel caso di <nocode> multipli.

    Inoltre, se
    testo
    è il testo, e
    testo_senza_nocode = RemoveNocodeTags(testo)
    il contenuto della variabile "testo" rimane quello che era, no?

    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  5. #5
    La parte di testo che rimuovi la puoi recuperare, per esempio, facendo
    codice:
    testo_tra_tags = mid(prova, instr(prova, "<nocode>")+8, (instr(prova, "</nocode>")-(instr(prova, "<nocode>")+8)))
    Okkio:non testata per <nocode>/</nocode> multipli

    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

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.