« Modèle:Regex » : différence entre les versions
Contenu supprimé Contenu ajouté
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 150 : | Ligne 150 : | ||
*: <code><(?!body).*></code> : pour avoir toutes les balises HTML sauf "body". |
*: <code><(?!body).*></code> : pour avoir toutes les balises HTML sauf "body". |
||
*: <code>début((?!mot_exclu).)*fin</code><ref>https://www.regextester.com/15</ref> : pour rechercher tout ce qui ne contient pas un mot entre deux autres. |
*: <code>début((?!mot_exclu).)*fin</code><ref>https://www.regextester.com/15</ref> : pour rechercher tout ce qui ne contient pas un mot entre deux autres. |
||
*: <code>(?!000|666)</code> : pour exclure 000 et 666<ref>{{ouvrage|url=https://books.google.fr/books?id=yY_EsWFMj-QC&pg=PA256&lpg=PA256&dq=python+regex+negative+lookahead+two+strings&source=bl&ots=dFQ7mV91WE&sig=ACfU3U0i-oRwa1H6Paxnq1z8WeTkLk7HyQ&hl=fr&sa=X&ved=2ahUKEwjh4fOBsKXqAhXbCWMBHfYODjY4FBDoATACegQIChAB#v=onepage&q=negative%20lookahead&f=false|titre=Regular Expressions Cookbook|auteurs=Jan Goyvaerts, Steven Levithan|éditeur=O'Reilly Media, Inc.|date=22 mai 2009}}</ref>. |
|||
<includeonly>{{#if:{{{nocat|}}}||{{#ifeq:{{{1|}}}|nocat||[[Catégorie:Expressions rationnelles|{{{1|{{BASEPAGENAME}}}}}]]}}}}</includeonly> |
<includeonly>{{#if:{{{nocat|}}}||{{#ifeq:{{{1|}}}|nocat||[[Catégorie:Expressions rationnelles|{{{1|{{BASEPAGENAME}}}}}]]}}}}</includeonly> |
Version du 28 juin 2020 à 22:49
Les expressions rationnelles peuvent être analysées et testées via un débogueur en ligne comme https://regex101.com/.
Caractère | Type | Explication |
---|---|---|
. | Point | n'importe quel caractère |
[...] | crochets | classe de caractères : tous les caractères énumérés dans la classe, avec possibilité de plages dont les bornes sont séparées par "-". Ex : [0-9a-z] pour tout l'alphanumérique en minuscule, ou [0-Z] pour tous les caractères de la table Unicode entre "0" et "Z", c'est-à-dire l'alphanumérique majuscule plus ":;<=>?@"[1].
|
[^...] | crochets et circonflexe | classe complémentée : tous les caractères sauf ceux énumérés. |
^ | circonflexe | marque le début de la chaine, la ligne... |
$ | dollar | marque la fin d'une chaine, ligne... |
| | barre verticale | alternative - ou reconnaît l'un ou l'autre |
(...) | parenthèses | groupe de capture : utilisée pour limiter la portée d'un masque ou de l'alternative |
* | astérisque | 0, 1 ou plusieurs occurrences |
+ | le plus | 1 ou plusieurs occurrences |
? | interrogation | 0 ou 1 occurrence |
{...} | accolades | comptage : détermine un nombre de caractères remplissant les critères qu'il suit. Ex : a{2} deux occurrences de "a", a{1,10} (sans espace) entre une et dix.
|
Remarques :
- Les caractères de débuts et fin de chaines (
^
et$
) ne fonctionnent pas dans[]
où ils ont un autre rôle. - Les opérateurs
*
et+
sont toujours avides, pour qu'ils laissent la priorité il faut leur apposer un?
à leur suite[2].
Classe | Signification |
---|---|
[[:alpha:]] | n'importe quelle lettre |
[[:digit:]] | n'importe quel chiffre |
[[:xdigit:]] | caractères hexadécimaux |
[[:alnum:]] | n'importe quelle lettre ou chiffre |
[[:space:]] | n'importe quel espace blanc |
[[:punct:]] | n'importe quel signe de ponctuation |
[[:lower:]] | n'importe quelle lettre en minuscule |
[[:upper:]] | n'importe quelle lettre capitale |
[[:blank:]] | espace ou tabulation |
[[:graph:]] | caractères affichables et imprimables |
[[:cntrl:]] | caractères d'échappement |
[[:print:]] | caractères imprimables exceptés ceux de contrôle |
Expression | Signification |
---|---|
\A | Début de chaine |
\b | Caractère de début ou fin de mot |
\d | Chiffre |
\D | Non chiffre |
\n | Fin de ligne |
\\pL, \p{L}, \p{Letter} | Lettre (dans tout langage) |
\s | Caractères espace |
\S | Non caractères espace |
\t | Tabulation |
\w | Caractère alphanumérique : lettre, chiffre ou underscore |
\W | Caractère qui n'est pas lettre, chiffre ou underscore |
\X | Caractère Unicode |
\z | Fin de chaine |
Constructeurs spéciaux : Ces fonctions précèdent l'expression à laquelle elles s'appliquent, et le tout doit être placé entre parenthèses.
?:
: groupe non capturant. Ignorer le groupe de capture lors de la numérotation des backreferences. Exemple :((?:sous-chaine_non_renvoyée|autre).)
.?>
: groupe non capturant indépendant.?<=
: positive lookbehind.?<!
: negative lookbehind.?=
: positive lookahead.?!
: negative lookahead. Exclusion d'une chaine. Il faut toujours la faire suivre d'un point. Exemples :
- ↑ https://unicode-table.com/fr/
- ↑ https://docstore.mik.ua/orelly/webprog/pcook/ch13_05.htm
- ↑ https://www.regular-expressions.info/posixbrackets.html
- ↑ http://www.regular-expressions.info/unicode.html
- ↑ https://www.regextester.com/15
- ↑ Jan Goyvaerts, Steven Levithan, Regular Expressions Cookbook, O'Reilly Media, Inc., (lire en ligne)