Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Chi mi spiega bene il pattern condizionale nelle PCRE?

    ciao, non riesco proprio a far funzionare il pattern condizionale nelle regexp perl...

    dovrebbe essere così:
    (?(condizione)pattern_si|pattern_no)

    ma non capisco bene... sembra non andare a dovere. mi date esempi pratici semplici? :master:

    ciao e grazie.

    jack.

  2. #2

  3. #3
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    che codice stai provando ad usare??
    think simple think ringo

  4. #4
    Originariamente inviato da marketto
    che codice stai provando ad usare??
    è una preg parecchio complessa...

    riesci a farmi un esempio pratico? io non riesco a farlo andare...ho fatto delle prove...

    poi si dovrebbero poter annidare giusto?

  5. #5
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    $text = "ciao";
    if(preg_match("/(?(?=^\d{4}$))^[1-9]{4}$|^[a-z]{4}$/",$text,$ris))
    	echo "Sequenza corretta";
    else
    	echo "Sequenza non corretta";
    la struttura che hai indicato è corretta:
    (?(condizione)pattern_si|pattern_no)
    condizione può essere un numero oppure un'asserzione.

    nell'esempio che ho postato uso ?=^\d{4}$ come asserzione in avanti positiva, ^[1-9]{4}$ come pattern in caso affermativo e ^[a-z]{4}$ come pattern in caso negativo.
    in pratica cosa succede:
    il preg_match controlla prima $text: se questo è un numero di 4 cifre (la mia asserzione) verifica ulteriormente che siano cifre comprese fra 1 e 9.
    se la variabile $text iniziale non è un numero l'asserzione risulta non verificata e quindi guardo ^[a-z]{4}$, ossia controllo di avere una parola con lettere dalla a alla z minuscole.
    think simple think ringo

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.