| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| powershell_regex [2020/05/04 11:37] – [Les opérateurs] nekan | powershell_regex [2021/03/05 15:59] (Version actuelle) – nekan |
|---|
| ~~CLOSETOC~~ | |
| ====== Les expressions régulières (regex) ====== | ====== Les expressions régulières (regex) ====== |
| | <label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/01/17 15:31// |
| |
| Les expressions régulières ou regex peuvent paraître compliquées au premier abord mais en y regardant de plus près, on se rend compte que c'est plutôt simple. Le principe d'une expression régulière est de créer un schéma qui permettra de valider la forme d'une chaîne de caractères. Par exemple, si dans un script, vous demandez à l'utilisateur de renseigner son numéro de téléphone au format international, il vous faudra valider la réponse de ce dernier. Si il répond ''+33123456789'' pour la france ou ''+8612345678901'' pour un portable chinoix, c'est bon, mais si il répond ''toto@messagerie.com'' ou ''James BOND'', ça ne l'est pas. La réponse va alors pouvoir être comparée à une regex et si le résultat renvoyé est ''$true'', alors la réponse de l'utilisateur correspond au format de réponse attendue. | Les expressions régulières ou regex peuvent paraître compliquées au premier abord mais en y regardant de plus près, on se rend compte que c'est plutôt simple. Le principe d'une expression régulière est de créer un schéma qui permettra de valider la forme d'une chaîne de caractères. Par exemple, si dans un script, vous demandez à l'utilisateur de renseigner son numéro de téléphone au format international, il vous faudra valider la réponse de ce dernier. Si il répond ''+33123456789'' pour la france ou ''+8612345678901'' pour un portable chinoix, c'est bon, mais si il répond ''toto@messagerie.com'' ou ''James BOND'', ça ne l'est pas. La réponse va alors pouvoir être comparée à une regex et si le résultat renvoyé est ''$true'', alors la réponse de l'utilisateur correspond au format de réponse attendue. |
| Voici en suivant les différentes règles structurantes des regex. | Voici en suivant les différentes règles structurantes des regex. |
| |
| <note>Tout caractère ou chaîne de caractères n'étant pas traité ici sera interprété tel quel par la regex.</note> | <callout type="info" icon="true" title="Interprétation">Tout caractère ou chaîne de caractères n'étant pas traité ici sera interprété tel quel par la regex.</callout> |
| |
| ===== Les caractères de structures ===== | ===== Les caractères de structures ===== |
| | ''*'' | Indique que la règle précédente peut être répété de 0 à x fois. | <sxh powershell>"a" -match "^[a]*$" | | ''*'' | Indique que la règle précédente peut être répété de 0 à x fois. | <sxh powershell>"a" -match "^[a]*$" |
| $true | $true |
| "" -match "^[a]*$" | '' -match "^[a]*$" |
| $true | $true |
| "aaaaaaaaaaaaaaaaaaaaaaaa" -match "^[a]*$" | "aaaaaaaaaaaaaaaaaaaaaaaa" -match "^[a]*$" |
| | ''+'' | Indique que la règle précédente peut être répété de 1 à x fois. | <sxh powershell>"a" -match "^[a]+$" | | ''+'' | Indique que la règle précédente peut être répété de 1 à x fois. | <sxh powershell>"a" -match "^[a]+$" |
| $true | $true |
| "" -match "^[a]+$" | '' -match "^[a]+$" |
| $false | $false |
| "aaaaaaaaaaaaaaaaaaaaaaaa" -match "^[a]+$" | "aaaaaaaaaaaaaaaaaaaaaaaa" -match "^[a]+$" |
| | ''?'' | Indique que la règle précédente peut être répété de 0 à 1 fois. | <sxh powershell>"a" -match "^[a]?$" | | ''?'' | Indique que la règle précédente peut être répété de 0 à 1 fois. | <sxh powershell>"a" -match "^[a]?$" |
| $true | $true |
| "" -match "^[a]?$" | '' -match "^[a]?$" |
| $true | $true |
| "aaaaaaaaaaaaaaaaaaaaaaaa" -match "^[a]?$" | "aaaaaaaaaaaaaaaaaaaaaaaa" -match "^[a]?$" |
| <sxh powershell>"^\w*[.-]?\w*@\w(\w|-)*(\.([a-z]){2,3}){1,2}$"</sxh> | <sxh powershell>"^\w*[.-]?\w*@\w(\w|-)*(\.([a-z]){2,3}){1,2}$"</sxh> |
| |
| --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/01/17 15:31// | |
| ~~DISCUSSION~~ | ~~DISCUSSION~~ |
| |