Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: espressione regolare

  1. #1
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193

    espressione regolare

    Eppure mi sembra di aver fatto tutto corretto :|

    Magari posso realizzare la stessa cosa con replace & explode, ma ormai per una mia cosa personale sarei curioso di sapere perché non funziona questa cosa.

    Codice PHP:
    // dopo 51, numero variabile di spazi.
    // sono interessato solo ai primi 4 blocchi di caratteri
    $s "50 luJ 51     102        1 -2.............";

    preg_match('/^(\\d{2})([ ]{1})(\\W{3})([ ]{1})(\\d{2})([ ]+)(\\d{3})/'$s$matches);

    var_dump($matches); 
    Risultato:

    array(0) {
    }


  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    prova così
    codice:
    preg_match("#^\d{2}\s\w{3}\s\d{2}\s+\d{3}#",$s,$matches);
    print_r($matches);

  3. #3
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193
    Niente

    codice:
    Array
    (
        [0] => 50 luJ 51     102
    )

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da Cerebro
    Niente

    codice:
    Array
    (
        [0] => 50 luJ 51     102
    )
    Avevo capito che volevi recuperare sino al 102. Invece cosa vuoi ottenere?

  5. #5
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193
    Le parti singole...

    codice:
    Array
    (
        [0] => 50
        [1] => luJ
        [2] => 51
        [3] => 102
    )

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    preg_match("#^(\d{2})\s(\w{3})\s(\d{2})\s+(\d{3})#",$s,$matches);

  7. #7
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193
    Grande!

    E' normale però che l'index 0 contenga la stringa intera?

    codice:
    Array
    (
        [0] => 50 luJ 51     102
        [1] => 50
        [2] => luJ
        [3] => 51
        [4] => 102
    )

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Magari è possibile ottenere solo le componenti senza il riconoscimento globale ma non sono molto pratico con le espressioni regolari. Attendi lumi dagli esperti.

  9. #9
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193
    Vabbé già così funziona, grazie

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    potresti usare array_shift per rimuovere il primo elemento anche se è un pò artigianale come metodo.

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.