L'attuale matched characters of \w
depend on the locale che si utilizza:
"parola" Un carattere è qualsiasi lettera o cifra o il carattere di sottolineatura, cioè, qualsiasi carattere che può essere parte di un Perl "parola ". La definizione di lettere e cifre è controllata dalle tabelle dei caratteri di PCRE e può variare in caso di corrispondenza specifica per locale. Ad esempio, nella locale "fr" (francese), alcuni codici di caratteri maggiori di 128 sono usati per lettere accentate, e questi sono abbinati a \ w.
così si dovrebbe meglio specificare in modo esplicito quali caratteri si desidera consentire:
/^[A-Za-z0-9_]+$/
Questo consente solo caratteri alfanumerici e il carattere di sottolineatura.
E se si desidera consentire sottolineatura solo come carattere di concatenazione e vuole forzare che il nome utente deve iniziare con una lettera dell'alfabeto:
/^[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*$/
questo permetterà trattini e penso periodi così –
Credo che gli spazi così potrebbe essere valido \ w –
Per PRE, \ w corrisponde un carattere "parola" (alfanumerico più "_"), secondo la documentazione ufficiale di Perl: http://www.perl.com/doc/manual/html/pod/perlre.html –