Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [espressioni regolari]

  1. #1

    [espressioni regolari]

    c'è un modo tramite funzione preg_replace di convertire da minuscolo a maiuscolo? non so una cosa tipo

    preg_replace("'([a-z])'si","qualche_carattere_speciale_$1",$txt);

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    think simple think ringo

  3. #3
    un tizio suggerisce questo trucco


    In the case transformations it is better to use "preg_replace", not "strtr":
    1) it is faster;
    2) it is possible to write a transformation formula for all Windows codepages, instead of each letter writing as most of you did.
    <?php
    $result = preg_replace("/([a-z\xE0-\xFF])/e","chr(ord('\\1')-32)",$arg);
    ?>

    For "to lower case" transformation:
    <?php
    $result = preg_replace("/([A-Z\xC0-\xDF])/e","chr(ord('\\1')+32)",$arg);
    ?>

    concordi? Non ho capito bene se posso avvalermi di una espressione regolare in strtoupper. In caso ti dispiacerebbe farmi un esempio?

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da Marcy Andy
    usa strtoupper, in questo caso è più veloce della preg_replace.


    think simple think ringo

  5. #5
    Spero allora di riuscire a trovare in rete qualche esempio di come usare quella funzione con un'espressione regolare. Non so come fare. A me preme poter fare un intervento mirato su un testo che mi vien dato in input.

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da Marcy Andy
    Spero allora di riuscire a trovare in rete qualche esempio di come usare quella funzione con un'espressione regolare. Non so come fare. A me preme poter fare un intervento mirato su un testo che mi vien dato in input.
    mmmmm...prova a spiegarti meglio
    think simple think ringo

  7. #7
    testo d'esempio:

    background-color: #f0f0f0;


    risultato:

    background-color: #F0F0F0;


    non voglio mettere in maiuscolo tutta la stringa, ma solo una parte, quindi mi serve per forza un'espressione regolare.

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    $stringa = "background-color: #f0f0f0;";
    $stringa = preg_replace("/(background-color: #)(.*)(;)/e","'\\1'.strtoupper('\\2').'\\3'",$stringa ); 
    echo $stringa;

    questa funziona su una singola stringa, per casi più complessi bisogna fare dei piccoli aggiustamenti


    think simple think ringo

  9. #9
    Grazie, sinceramente non sapevo che mettendo e, si potessero lanciare delle funzioni. Non conosco un elenco completo delle opzioni. i è per case-insensitive.

    Ad ogni modo ho scritto
    codice:
    $txt = preg_replace("'(color *(:|=) *#)(\w+)( *[;}])'ei","'$1'.strtoupper('$3').'$4'",$txt);
    ed è andata bene.

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.