Domanda

sto avendo problemi nel creare un'espressione regolare che fisserà una stringa valida.

La stringa sarà nel formato: ogni 3 a 5 volte alfanumerici carattere, seguito da una virgola, se ci sono più caratteri dopo altrimenti la sua alla fine della stringa

Esempio stringhe: A401, CR56,4U9Y, MO16, ECZGB, A7DC, 9LN5, D52PU, UT95, YBPB0,2JWA, AAMW, LAMal, 6V8W, FWE

TRIR, J107, Q9X, FMFZ, VDAS, 557, X7A, DRPB, S97O, 8U62B, IN3I, H8MC, WS4C, U04KQ, X05O.

Ho provato un paio di varie espressioni, ma nessuno che sembrano corrispondere se ho una voce non valida. So che potrei esplodere la corda, e scorrere l'array, ma cercando di fare questo in solo un'espressione come sembra un abbastanza facile, ma non riesco a capirlo.

modelli Exmaple:

echo preg_match("/^([A-Z0-9]{3,5})[,|$]{1,}/",$str);
echo preg_match("/((?<=[^|,])([A-Z0-9]{3,5}){1}(?=[,|$])){1,}/",$str);

e diverse varianti su di loro, ma non riesco a trovare il modello vincente, tutto l'aiuto apprezzato.

Saluti, Psy

È stato utile?

Soluzione

/^[A-Z0-9]{3,5}(?:,[A-Z0-9]{3,5})*$/

Altri suggerimenti

/^([a-z0-9]{3,5},)*[a-z0-9]{3,5}$/

Questo funziona per me:

(\w{3,5})[,.]?

Prova:

echo preg_match("/^([A-Z0-9]{3,5}(?:,|$))+/",$str);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top