regular - string match php




Nome utente Yahoo Regex (3)

Ho bisogno di una regex (php) per abbinare le regole del nome utente di Yahoo:

Usa da 4 a 32 caratteri e inizia con una lettera. È possibile utilizzare lettere, numeri, trattini bassi e un punto (.).


Usando lookaheads potresti fare quanto segue:

^(?=[A-Za-z](?:\w*(?:\.\w*)?$))(\S{4,32})$

Perché non hai specificato quale tipo di regex hai avuto bisogno di aggiungere molte cose compatibili con Perl 5. Come (?: ... ) per parents non catturanti.

Nota: ho aggiunto il paren chiuso mancante.


Un limite di un punto? È difficile.

Non sono un esperto di regex, ma penso che lo otterrebbe, eccetto per quello:

[A-Za-z][A-Za-z0-9_.]{3,31}

Forse potresti controllare per il. requisito separatamente?


/^[A-Za-z](?=[A-Za-z0-9_.]{3,31}$)[a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*$/

O un po 'più breve:

/^[a-z](?=[\w.]{3,31}$)\w*\.?\w*$/i




yahoo