Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    41

    espressioni regolari individuare l'ultimo numero di una stringa

    dovrei riuscire a individuare l'ultimo numero presente in una stringa,ho scritto questo:

    Codice PHP:

    $str 
    ="acbfjfjf 14 eeeescdd 18";

    preg_match("/[0-9]+$/",$str,$ris); 
    che in effetti funziona, ma solo se il numero è l'ultimo elemento della stringa, se ad esempio
    $str = "acbfjfjf 14 eeeescdd 18 eeee";

    non riesce più a individuare 18.

    come devo modificare l'espressione per far in modo che funzioni anche in questo caso?

    grazie a tutti.

  2. #2
    prova a fare un preg_match_all col pattern

    codice:
    /([0-9]+)/
    e ti prendi solo l'ultimo risultato ottenuto
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    io avrei un approccio differente.
    visto che sono stringhe e numeri separati da spazi agirei così:
    1. creo un'array splittando stringhe e numeri
    2. faccio il reverse dell'array in maniera da manipolare per pirmi gli ultimi indici oppure opero attraverso operatori numerici a partire dalla fine
    3. se il valore della chiave array è un intero o un numero allora ho trovato l'ultimo numero altrimenti proseguo con la chiave successiva
    Glue Labs
    Makes extraordinary things
    www.glue-labs.com/

  4. #4
    Originariamente inviato da glue-labs
    io avrei un approccio differente.
    visto che sono stringhe e numeri separati da spazi agirei così:
    1. creo un'array splittando stringhe e numeri
    2. faccio il reverse dell'array in maniera da manipolare per pirmi gli ultimi indici oppure opero attraverso operatori numerici a partire dalla fine
    3. se il valore della chiave array è un intero o un numero allora ho trovato l'ultimo numero altrimenti proseguo con la chiave successiva
    si vabbeh è un poco macchinoso così no?


    cmq questo pattern dovrebbe andarti bene:

    codice:
    /(\d+)[^\d]*$/
    estrae solo l'ultimo numero a prescindere dalla sua posizione
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    41
    grazie mille a entrambi, ho adottato il pattern di Santino83_02

    codice:
    /(\d+)[^\d]*$/
    che è perfetto perchè l'obbiettivo era quello di estrarre un numero civico da un indirizzo e con questo pattern ottengo un array con due indici,nel primo indice ho il numero e tutto ciò che segue e nel secondo solo il numero, quindi nel primo indice riesco a trovare anche cose tipo "14/b".

    grazie mille a tutti.


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.