Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Preg_match su 100%

  1. #1

    Preg_match su 100%

    $string = "100%"

    Voglio estrarre, in valori separati, 100 e %

    Inoltre, nel caso $string = "100", voglio estrarre 100

    Ho provato con
    preg_match('/([0-9]*)(%)/', "100%" , $matches);
    print_r($matches);

    Ma mi estrae 3 valori

    Array ( [0] => 100% [1] => 100 [2] => % )

  2. #2
    il primo valore è la parte di stringa matchata, il secono è il valore grabbato da ([0-9]*) e il terzo è il valore grabbato da (%)... me pare che funzioni no? ovviamente solo 100 non te lo prende così, se non erro dovresti avere una stringa:

    codice:
    '/([0-9]*)(%)?/'
    in maniera che il % sia opinabile.. solo che sono negato con le reg exp quindi ti suggerisco di fare un pò di prove con qualche simulatore online.. ce ne sono un'infinità

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    e se avessi 100.45%??

  4. #4
    non te lo matcha... o almeno non ti prende i decimali

    cmq se vuoi fare dei test: http://www.fileformat.info/tool/regex.htm
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    no voglio prendere tutta la cifra compresi i decimali e il %

  6. #6
    /([0-9]+)(\.|,)?((?<=\.|,)[0-9]+)?(%)?/

    questa regexp (che non ho provato) permette di prendere i decimali, separati sia da punto sia da virgola, solo se è presente il punto o la virgola di separazione

    se non dovesse funzionarti, togli il look behind dalla regexp lasciando quindi solo
    /([0-9]+)(\.|,)?([0-9]+)?(%)?/
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.