Visualizzazione dei risultati da 1 a 8 su 8

Discussione: espressioni regolari

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    99

    espressioni regolari

    salve ragazzi,

    ho una stringa del tipo

    prova1 ; prova2; ciao )

    io voglio sostituire tutto ciò che è dopo l'ultimo ; fino alla ).

    come si costrisce l'espressione regolare per la funzione ereg_replace()

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    se ti interessa senza espressioni regolari, ti posto questo codice:
    Codice PHP:
    $pippo="prova1 ; prova2; ciao ) ";

    $newStr "nuovo testo";

    $pos strrpos($pippo";")+2;
    echo 
    substr_replace($pippo$newStr$posstrlen($pippo)); 
    i link delle funzioni usate:
    http://it2.php.net/manual/it/functio...tr-replace.php
    http://it2.php.net/manual/it/function.strrpos.php
    http://it2.php.net/manual/it/function.strlen.php

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    99
    il codice che hai scritto significa che da la posizione dopo aver trovato due ";".

    Io ho fatto semplicemente con str_replace. Il problema sono eventuali spazi.
    Sicuramente la tua è più corretta.
    Adesso Provo

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    Ti spiego il mio codice:
    Codice PHP:
    //Stringa originale
    $pippo="prova1 ; prova2; ciao ) ";
    //Stringa da sostituire
    $newStr "nuovo testo";

    /*
    Cerco la posizione dell'ultima occorrenza del ';', faccio +2
    in modo che mi prenda anche l'eventuale spazio
    */
    $pos strrpos($pippo";")+2;

    /*sostituisco con la nuova stringa solo la parte di stringa
    a partire dalla posione trovata in precedenza fino alla fine della stringa originale
    */
    echo substr_replace($pippo$newStr$posstrlen($pippo)); 
    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    99
    toglimi un altro dubbio.

    Lui considera solamente 2 spazi o di più?
    A me interessa con n spazi che non so!!

    Grazie ancora

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    lo script considera un solo spazio( viene impostato con il +2), per essere + chiaro, prova a vedere gli esempi:

    Codice PHP:
    <?php
    //Stringa originale
    $pippo="prova1 ; prova2; ciao ) ";
    $newStr "nuovo testo";

    $pos strrpos($pippo";");
    echo 
    substr_replace($pippo$newStr$posstrlen($pippo));
    echo 
    "
    "
    ;
    //Visaulizzerà prova1 ; prova2nuovo testo
    $pos strrpos($pippo";")+1;
    echo 
    substr_replace($pippo$newStr$posstrlen($pippo));
    //Visaulizzerà prova1 ; prova2;nuovo testo
    echo "
    "
    ;

    $pos strrpos($pippo";")+2;
    echo 
    substr_replace($pippo$newStr$posstrlen($pippo));
    //Visaulizzerà prova1 ; prova2; nuovo testo


    ?>
    A questo punto però, se ti serve utilizzare N spazi, ti conviene usare le espressioni regolari, se il numero di pazi fosse stato fisso, sarebbe andato bene il mio script, ma se vuoi mantenere un num di spazi variabile, penso che l'unica soluzione siano le espressioni regolari...
    Purtroppo in questo caso non posso esserti d'aiuto perchè non sono molto ferrato sull'argomento...
    mi spiace.

    ciao
    Lore

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    99
    grazie ancora, ma penso proprio che devo utilizzare le espressioni regolari, dove ho un defecit grandissimo.

    AIUTO!!!!!!!!!

  8. #8
    prova usando questa:
    codice:
    $newStr = preg_replace('/^(.*;).*?$/','$1'.$str_sostitutiva,$tua_stringa);
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.