Visualizzazione dei risultati da 1 a 8 su 8

Discussione: espressione regolare

  1. #1

    espressione regolare

    premetto di aver letto la pillola e di aver letto quasi tutto su php.net

    ora, io avrei bisogno di una espressione regolare che trasformi uno o + spazi, uno o + apostrofi, e uno o + punti ... in un punto
    e che trasformi l'iniziale di ogni parola in maiuscola

    ho provato una cosa del genere

    $uno = "l'anziana nonna....fa la torta";
    $due = ucwords($uno);
    $due = preg_replace("/(\\.|\\'|\\040)/",".",$due);

    io vorrei ricevere questo "L.Anziana.Nonna.Fa.La.Torta"

    pur funzionando, genera qualche inconveniente. infatti, č vero che mi sostituisce quai caratteri con il punto, ma se i caratteri sono multipli, vengono stampati il numero corrispettivo di punti. (ho provato anche con preg_replace("/(+\\.|+\\'|+\\040)/",".",$due); per indicare uno o pių caratteri di quel genere, ma ricevo errore )
    inoltre la funzione ucwords per trasformare l'iniziale di ogni parola in maiuscola non fuziona per "l'anziana" , in quanto viene vista come unica parola..

    qualcuno mi puō aiutare a risolvere ?

    grazie in anticipo ..

    kicko

  2. #2

  3. #3
    Originariamente inviato da stefano3804
    USA ucfirst
    ucfirst -- Converte in maiuscolo il primo carattere del testo

    non č ciō che serve a me ... a me serve converntire in maiuscolo il primo carattere di ogni parola, per questo ho scelto ucwords
    ( ucwords -- Converte in maiuscolo il primo carattere di ogni parola di una stringa )

    grazie cmq ... mentre per l'espressione regolare sai darmi una mano ?

  4. #4
    io continuo a fare tentativi ... ma effettivamente nn so proprio come risolvere

    help!!

  5. #5
    prova cosė :
    codice:
    echo ucwords(preg_replace("/[.\s']+(\w)/e",'".".strtoupper("$1")',$uno));
    Se poi vuoi aggiungerci altri caratteri di interpunzione aggiungili nella parentesi quadra.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  6. #6
    la tua regexp funziona quasi perfettamente.
    l'unica cosa che nn fa č questa

    trasforma "L'anziana nonna" in "L\.Anziana.Nonna"

    c'č una \ di troppo :P

    ho provato a sostituire all'interno della parentesi quadra ' con \\', ma da lo stesso risultato ...

    altro aiutino ?

  7. #7
    Se ti interessa sostituire solo punto, spazio, virgoletta singola e i backslash prova cosė
    codice:
    echo ucwords(preg_replace("/[.\s'\\\]+(\w)/e",'".".strtoupper("$1")',$uno));
    Se invece volessi sotituire tutti i caratteri che non siano lettere o numeri prova cosė:
    codice:
    echo ucwords(preg_replace("/[\W_]+(\w)/e",'".".strtoupper("$1")',$uno));
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  8. #8
    miticoooo!!!

    sei un grande!!

    grazie

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.