Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di zoom
    Registrato dal
    Dec 2001
    Messaggi
    1,737

    regular expression. togliere parti di testo

    devo eliminare tutte le lettere comprese tra [ e ] in una variabile Content...

    ho provato con

    reReplace(Content, "/[A-Za-z]/" ,"", "All")

    ma non funziona...
    come posso fare?

    è la prima volta che uso le regular... :master:
    Chicco Ravaglia per sempre con noi!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    In che linguaggio?

    Se e` JS, la sintassi e` diversa:

    var newvar = Content.replace(/regexp/, "newstr");

    La regexp dovrebbe essere di questo tipo (se ho capito bene la tua richiesta):
    /\[.+\]/g

    In totale:
    Content = Content.replace(/\[.+\]/g, "");

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di zoom
    Registrato dal
    Dec 2001
    Messaggi
    1,737
    devo usarlo in coldfusion...
    non serve il rereplace?
    cmq qusto mi da errore adesso...

    non ci capisco un tubazzo
    Chicco Ravaglia per sempre con noi!

  4. #4
    Utente di HTML.it L'avatar di zoom
    Registrato dal
    Dec 2001
    Messaggi
    1,737
    l'ho modificato un po'...
    così non da errore....
    però non fa niente...


    <CFSET newContent=reReplace(Content,"/\[.+\]/g","")>

    help
    Chicco Ravaglia per sempre con noi!

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non so cosa sia coldfusion. Mi pare che sia un editor.

    Io non voglio entrare nel merito di come gestiscono il JS i vari editor. Quelli che ho provato erano bacati: io preferisco editare la pagina con un editor di testi. Personalmente uso emacs (linux); per windows va bene notepad (o wordpad se salvi come testo).

    Il codice che ti ho dato io e` corretto per JS. Quello che hai proposto tu no, per cui potrebbe essere che tu usi un linguaggio diverso.

    Tornando alla regexp, la tua sostituisce una lettera (maiuscola o minuscola) con ...(non so interpretare il codice).
    La mia toglie tutto cio` che e` compreso fra le quadre (parentesi comprese).

    Dovresti anche specificare che errore ti da`, altrimenti non posso aiutarti.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it L'avatar di zoom
    Registrato dal
    Dec 2001
    Messaggi
    1,737
    coldfusion è un linguagggio server-side.
    un po' come php e asp.
    ha il supporto diretto per le regular expression.

    unendo quello che mi hai dato tu con quello che dice il manuale ho fatto questo.

    reReplace(Content,"/\[.+\]/g","")>

    non da errori ma non fa niente...
    il testo rimane così:
    [G]grassetto[g]
    [I]italico[i]


    sono al secondo giorno di coldfusion e al primo di regular...
    non ci capisco più niente
    Chicco Ravaglia per sempre con noi!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ho capito il discorso di coldfusion.

    Le regexp sono molto simili in tutti i programmi in cui sono implementate, ma non sono identiche. In generale ci possono essere features in piu` o in meno. Per sapere con certezza, devi consultare il reference manual specifico.

    In particolare nel tuo primo post avevi usato una sintassi che prevedeva tre parametri alla funzione reReplace, il terzo dei quali era "All", che potrebbe essere equivalente al /g delle regexp standard (ma controlla nel manuale).

    Poi vado ad analizzare quello che ho scritto dentro la regexp:
    /\[.+\]/
    / inizio e fine della espressione
    \[ primo carattere (la backslash e` necessaria perche` [ ha un suo significato nella regexp
    .+ qualsiasi carattere ripetuto una o piu` volte
    \] ultimo carattere

    Quindi prende i caratteri compresi tra [ e ] (estremi inclusi) e li sostituisce con cio` che e` contenuto nel secondo parametro, quindi niente.

    Se non funziona, puo` dipendere da vari fattori, tra cui la chiamata.
    Per controllare se c'e` un problema di chiamata, prova con una regexp piu` semplice:
    /a/
    dovrebbe togliere tutte le lettere "a".

    Spero di essere riuscito a metterti sulla strada giusta.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it L'avatar di zoom
    Registrato dal
    Dec 2001
    Messaggi
    1,737
    grazie, mi hai spiegato un po' meglio il discorso e son riuscito a farlo funzionare cos':

    codice:
    <cfset newContent=reReplace(Content,"\[.+?\]","","ALL")>
    se a qualcuno dovesse servire in futuro...
    peccato che non accetti regular expression anche nel replace

    cmq adesso funziona :metallica
    posso scrivere sul curriculum di sapere benissimo le regular expression

    grazie Mich_
    Chicco Ravaglia per sempre con noi!

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.