Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    17

    Estrarre stringa delimitata tra 2 pattern

    Ciao a tutti, con le espressioni regolari sono un disastro, potete darmi una mano?

    Io ho questa stringa:
    Codice PHP:
     $stringa "Note: Alimenti tot spesa 64.55 63.48 bp"
    E' possibile tramite espressione regolare (o altro) estrarre il valore 63.48 ?
    Ovviamente la stringa cambierà sempre ma c'è una costante, termina sempre con bp, e a me serve estrarre il numero immediatamente a sinistra di bp.

  2. #2
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    94
    non si riesce a rispondere postando del codice, anche in modalità testo.

    preg_match_all('/\d+\.\d+/', $stringa, $valori);
    echo $valori[0][1] ;
    Ultima modifica di ninja72; 17-06-2020 a 13:15

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    17
    Ciao, grazie ma non mi stampa nulla.

  4. #4
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    94
    posta il codice, a me funziona.

  5. #5
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    94
    bisogna vedere esattamente come varia la stringa, nel caso la coppia di numeri decimali non sia disponibile potresti non vedere nulla, anche nel caso i numeri decimali diventino interi ci sarebbero problemi, per ovviare al primo problema si potrebbe fare in questo modo :

    // metodo 1 preg_match_all
    $stringa = "Note: tot spesa 123.00 14.00 65.48 bp";
    preg_match_all('/\d+\.\d+/', $stringa, $valori);

    $key = array_key_last(end($valori));
    echo $valori[0][$key] . "<br>";

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    17
    Ah ok il problema infatti è proprio questo, la stringa deve poter contenere sia numeri decimali che interi, e in caso di numeri interi non ci deve essere il .00

  7. #7
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    94
    Ciao, prova cosi :

    $stringa = "Note: Alimenti tot spesa 64.00 65 bp";
    preg_match_all('/\d+\.\d+|\d+/', $stringa, $valori);

    $key = array_key_last(end($valori));
    echo $valori[0][$key] . "<br>";

Tag per questa discussione

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 © 2020 vBulletin Solutions, Inc. All rights reserved.