Espressioni regolari PHP: nessun delimitatore finale "^" trovato in


102

Ho avuto dei problemi con le espressioni regolari.

Questo è il mio codice

$pattern = "^([0-9]+)$";

if (preg_match($pattern, $input))
   echo "yes";
else
   echo "nope";

Lo eseguo e ottengo:

Avviso: preg_match () [function.preg-match]: nessun delimitatore finale '^' trovato in


Puoi usare la libreria T-Regx , che non necessita di delimitatori.
Danon

Risposte:


157

Le stringhe di espressioni regolari PHP necessitano di delimitatori. Provare:

$numpattern="/^([0-9]+)$/";

Inoltre, nota che hai una o minuscola, non uno zero. Inoltre, se stai solo convalidando, non hai bisogno del gruppo di acquisizione e puoi semplificare la regex in /^\d+$/.

Esempio: http://ideone.com/Ec3zh

Vedi anche: PHP - Delimitatori


2
Per chi non legge materiali linkati, usa [e ]delimitatori, altrimenti incappi in conflitti con il pattern stesso.
greenoldman

23

Il tuo pattern regex deve essere compreso tra delimitatori:

$numpattern="/^([0-9]+)$/";

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.