Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Ciao, puoi risolvere anche con una semplice espressione regolare:
    codice:
    $stringa = "95345456655,32505050,02060660,337484884";
    echo preg_match("/(?:^|,)(3[^,]+)/", $stringa, $primo_cell) ? $primo_cell[1] : "nessun risultato";
    In questo caso il pattern è piuttosto semplice:
    (?:^|,)(3[^,]+)

    (?:^|,) gruppo non-catturante, identifica la presenza di inizio stringa o di una virgola
    (3[^,]+) primo gruppo di cattura
    3 trova il carattere 3
    [^,] trova qualsiasi carattere che non sia una virgola
    + quantificatore, trova da 1 a più elementi della precedente specifica

    Poi, a seconda delle tue esigenze, si potrebbe impostare un pattern più complesso.

    $primo_cell è sostanzialmente un array di tutte le occorrenze trovate dove $primo_cell[0] restituisce l'occorrenza trovata dall'intero pattern mentre $primo_cell[1] non è altro che l'occorrenza trovata col primo gruppo di cattura.

    Nota: ho usato un operatore ternario ( ? : ) con l'echo, così che se viene trovato qualcosa (preg_match() restituisce il numero di occorrenze trovate) allora stampa appunto il primo gruppo catturato, altrimenti stampa il testo "nessun risultato".

    Questa condizione è necessaria per evitare messaggi di errore qualora non venga trovato nulla e si tenti di accedere all'elemento [1] dell'array $primo_cell che però risulta vuoto. Chiaramente questo controllo può essere impostato come meglio si crede e a seconda delle proprie esigenze.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    In questo caso il pattern è piuttosto semplice:
    eh già, è semplice PER TE...
    comunque grazie ora me lo studio.. le espressioni regolari sono il confine della mia conoscenza
    grazie ancora

  3. #3
    Ciao a tutti

    sono nuovo del fourm e sto "cercando" di imparare l'utilizo delle RegEx ma la partenza è difficile.

    Cmq avrei necessità di estrarre da una stringa tipo questa

    Arterial Road<BR><BR><B>CODICE</B> = 5/a<BR><B>NOME_STRADA</B> = Anguillarese

    la parte evidenziata in rosso (la parte variabile) tenendo condo che le stringhe hanno anche l'ultima parola (Anguillarese in questo caso) che varia.

    Grazie per il supporto

    Francesco

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