Visualizzazione risultati 1 fino 7 di 7

Discussione: regex

  1. #1
    Guest

    Predefinito regex

    Devo formattare un testo che attraverso le variabili, mi toglie tutta la forattazione. Per questo, mi serviva sapere quale operando delle regex riconosceva l'invio, per poi sostitutirlo col tag <p>.
    grazie

  2. #2
    Ospite Guest

    Predefinito

    puoi fare prima
    $testo = nl2br($testo);
    e dopo hai che al posto dell'invio c'è "<br />" e puoi usare questo per sostituirlo con <p>
    ciao

  3. #3
    L'avatar di gve
    gve
    gve non è connesso Utente storico
    Data registrazione
    26-01-2003
    Residenza
    Brescia
    Messaggi
    2,964

    Predefinito

    il carattere di nuova linea comunque viene individuato da:
    \n
    | Regolamento del Forum | Regolamento di AlterVista | FAQ di AlterVista | Netiquette |

    GVE = GVE Virtual Extension
    AVCM #: 6637

  4. #4
    Guest

    Predefinito

    la funzione nl2br, funziona per metà delle mie esigenze, perché finché il risultato non deve essere messo nello script java, tutto OK, ma nello script, mi lascia il carattere con codice 0xA nel file di testo (mi aggiunge <br /> non lo sostituisce), ciò ne deriva che nell'html della pagina, il testo del file txt , è formattato con i return.
    o notato poi che cercare \\' co, programma The regex coach mi trova \', ma in php mi trova solo '.
    Come posso fare?
    grazie

  5. #5
    Guest

    Predefinito

    per i backslash ok (ho usato la funzione $testo=stripslashes($testo);)
    Per qunto riguarda il carattere return, ho ancora problemi.

    Questa è la regex che uso per trovare il carattere di fine linea \n e sostituirlo con uno dollaro;

    Questa è l'esecuzione della regex col programma regex coach (correttamente)

    E questo è il risultato nel file di testo
    .
    Come si può vedere il carattere \n non viene sostituito, ma viene aggiunto il simbolo del dollaro.
    Come posso fare? grazie

  6. #6
    Guest

    Predefinito

    No il carattere \n viene sostituito ma quello che vedi è il carattere di ritorno carrello.
    In windows come certamente saprai, il carattere di fine linea è composto di due caratteri, ovvero: una nuova linea #10 ed un ritorno carrello #13 a differenza di unix che ha solo la nuova linea #10 e di mac che ha solo il ritorno carrello #13.
    quindi nel tuo testo devi necessariamente tenere conto della formatazione di testo, dovuta al sistema operativo che ha generato il file che vai a esaminare.

    A questo punto ti tocca per forza fare due sostizioni, ovvero leggere la stringa con il carattere impostato a \n se non lo trova, hai certamente un testo realizzato con mac e devi sostituire solo il #13.
    Se lo trova è un casino, o meglio devi prima verificare che ci sia anche il carattere #13 e poi se c'è eliminarlo, in fondo non ti serve.
    A questo punto puoi sostituire i rimanenti #10 (ovvero \n) con la coppia </p><p> ti conviene usare i paragrafi in luogo di un brake <br /> perché ne puoi controllare la formattazione attraverso un foglio di stile, mentre con brak non ci puoi fare granchè.

    Marco.

    PS #10 = \n in ascii
    #13 = \r mi pare in php ovvero ritorno carrello in ascii

  7. #7
    Guest

    Predefinito

    Ok grazie, ho risolto, facendo sostituire quel carattere con uno spazio attraverso una regex, comunque, adesso funziona :grin:

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •