{{tag>regex exemple}}
====== Regex : minuscules sans caractères spéciaux ======
On souhaite sélectionner seulement des mots en minuscules pouvant intégrer des chiffres et les caractères '-' et '_' : les autres caractères spéciaux, les accents ou ponctuations ne sont pas acceptés.
Ci-dessous l'expression rationnelle souhaitée:
^([_a-z0-9-])+( {1}([_a-z0-9-])+)*$
Exemples de chaînes valides:
mot
deux mots
_mot-valide
1_autre_mot_valide
une autre phrase a 7 mots valides
Exemples de rejets :
la chaine commence par un espace ou contient de multiples espaces .
des accents sont présents dans la chaine
de la ponctuation aussi est rejetee!
les caractères accentués ou spéciaux $ sont rejetés
Pour utiliser correctement l'expression rationnelle depuis bash avec **grep**, utiliser l'argument -P (%%--perl-regexp%%):
echo "exemple de chaine rejeté" | grep -P '^([a-z])+( {1}([a-z])+)*$'