====== Les expressions régulières ====== ===== Déclarations ===== Utilisables en l'état avec Python, sans doute avec d'autres technologies. * **\d** : match n'importe quel chiffre * **[...]** : match l'un des caractères exactement * [abc] match a, b ou c * [A-Z] match n'importe quelle lettre majuscule * [A-Za-z] match n'importe quelle lettre, majuscule ou minuscule * **{n}** répète n fois la séquence * [A-Z]{3} match n'importe quelle séquence de 3 lettres majuscules consécutives * [A-Z]{2-4} match n'importe quelle séquence de 2 à 3 lettres majuscules consécutives * [A-Z]{2,} match n'importe quelle séquence à partir de 2 lettres majuscules consécutives * **+** match l'élément marqué une fois ou plus, équivalent à {1,} * ***** match l'élément marqué 0 fois ou plus, équivalent à {0,} * **?** match l'élément marqué 0 ou 1 foisfois ou plus, équivalent à {0,1} * **(...)** permet d'accéder au différents objets matchés * (\d)-(\d) match 11 et permet d'accéder séparément aux deux chiffres grâce à group(n) (n>=1) * **(?PEXPRESSION)** nomme le groupe matché, (?P=name) permet de s'y référer ===== Exemples ===== ==== Numéro de téléphone ==== Peut prendre les formes suivantes: * 0X XX XX XX XX * 0XXXXXXXXX * 0X-XX-XX-XX-XX * 0X/XX/XX/XX/XX -> 0 pour commencer, puis un chiffre, puis 4 séries de 2 chiffres séparés ou non par un caractère de délimitation (. ou ESPACE ou -) ^0[0-9]([ .-]?[0-9]{2}){4}$ * ^ -> l'expression doit être au début de la chaîne * $ -> l'expression doit être en fin de chaîne * ^EXPRESSION$ -> la chaîne ne doit contenir que l'expression * Premier 0 -> le premier caractère doit être un 0 * Classe [0-9] -> le caractère suivant doit être compris entre 0 et 9 * ([ .-]?[0-9]{2}) -> Groupe * Classe [ .-] -> doit être un ESPACE ou un point ou un tiret * ? -> La classe précédente est optionnelle * [0-9]{2} -> deux chiffres entre 0 et 9 sont attendus * {4} -> Le groupe précédent doit être présente 4 fois (source [[http://www.siteduzero.com/informatique/tutoriels/apprenez-a-programmer-en-python/le-module-re|SdZ]]) ==== URL pour Django ==== Explications pour le [[https://docs.djangoproject.com/en/dev/intro/tutorial03/|tutoriel Django]] url(r'^polls/', include('polls.urls')), url(r'^admin/', include(admin.site.urls)), Les deux expressions ont le même format * ^ -> l'expression est au début de la chaîne de caractère. Ici il s'agit d'URLS. Dans le cas de Django, le domaine n'est pas pris en compte. Les expressions fonctionneront par exemple pour http://mondomaine.ext/polls/ et http://mondomaine.ext/admin/ mais pas pour http://mondomaine.ext/TRUCENPLUS/admin/