Outils pour utilisateurs

Outils du site


regex

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
regex [2016/11/29 12:40]
luc
regex [2018/10/13 20:32] (Version actuelle)
Ligne 19: Ligne 19:
 |  [ ]  |  définit une classe, ce qui correspond à un motif dans le motif (voir le paragraphe dédié)  | |  [ ]  |  définit une classe, ce qui correspond à un motif dans le motif (voir le paragraphe dédié)  |
 |  %%|%%  |  permet une alternative entre ce qui est d'un côté ou de l'autre  | |  %%|%%  |  permet une alternative entre ce qui est d'un côté ou de l'autre  |
-| |  |+| |  **Spéciaux**  |
 |  .  |   un caractère, quelqu'il soit   | |  .  |   un caractère, quelqu'il soit   |
-|  \  |  permet d'échapper un caractère spécial normalement utilisé pour décrire une regex (ex: . * )  |+|  \  |  permet d'échapper un caractère spécial normalement utilisé pour décrire une regex: ''%%^%%$*?+{}()[]%%|%%.\!'' 
 +|  !  |  euh  | 
 + 
 +| |  **Les raccourcis** 
 +|  \d  |  indique un chiffre = [0-9]  | 
 +|  \D  |  indique ce qui n'est pas un chiffre 
 +|  \w  |  indique un caractère alphanumérique = [a-ZA-Z0-9_] 
 +|  \W  |  indique ce qui n'est pas un caractère alphanumérique (le contraire de \w | 
 +|  \t  |  indique une tabulation 
 +|  \n  |  indique une nouvelle ligne  | 
 +|  \r  |  indique un retour chariot 
 +|  \s  |  indique un espace blanc  |
 |  \S  |  tout caractère qui n'est pas un whitespace (=espace) (testé en python)  | |  \S  |  tout caractère qui n'est pas un whitespace (=espace) (testé en python)  |
 +
  
 === Principe === === Principe ===
Ligne 40: Ligne 52:
 Elle est marquée par le caractère ''^''. : ''[^a-z]'' pour définir qque chose qui ne contient aucune lettre en minuscule. Elle est marquée par le caractère ''^''. : ''[^a-z]'' pour définir qque chose qui ne contient aucune lettre en minuscule.
  
 +== échappement ==
 +Dans une classe, l'échappement ''\'' ne doit pas être utilisé devant un caractère spécial d'une regex (''%%^%%$*?+{}()[]%%|%%.\!'') sauf '']'' car on s'en sert pour fermer la classe, et sauf ''-'' et ''%%^%%''dont on se sert dans la définition des classes.
  
 === Quantificateurs === === Quantificateurs ===
Ligne 46: Ligne 60:
  
 Les '' }'' peuvent être aussi utilisées pour déterminer le nombre exact de répétition. ''[0-9]{4}'' sert à définir une date comme 1789, mais pas 495 (n'a que 3 chiffres). Les '' }'' peuvent être aussi utilisées pour déterminer le nombre exact de répétition. ''[0-9]{4}'' sert à définir une date comme 1789, mais pas 495 (n'a que 3 chiffres).
 +
 +=== Groupes ===
 +
 +Dans certaines applications, la commande ''perl-rename'' pour ne pas la nommer, on remplace des bouts de chaînes par d'autres.
 +
 +<code bash>
 +perl-rename -n 's/regex1/regex2/' fichier
 +</code>
 +
 +On peut vouloir réutiliser des bouts de chaines sélectionnés dans la regex2. Dans ce cas, il faut former des groupes à l'aide des '' )'', qu'on peut réutiliser dans la seconde regex avec ''$1  $2'', ''$1'' correspondant au premier groupe, etc..
 +
  
 === Assertions === === Assertions ===
Ligne 51: Ligne 76:
 Il s'agit de test qui sont effectués sur les caractères précédents ou suivant les caractères en cours d'étude, et ne font pas partie de la sélection. Il s'agit de test qui sont effectués sur les caractères précédents ou suivant les caractères en cours d'étude, et ne font pas partie de la sélection.
  
-''b(?=[a-zA-Z])'' est positif si la lettre b est suivie par une autre lettre+''b(?=[a-zA-Z])'' est positif si la lettre b est suivie par une autre lettre\\
 ''b(?![0-9])'' est positif si la lettre b n'est pas suivie d'un nombre (assertion négative) ''b(?![0-9])'' est positif si la lettre b n'est pas suivie d'un nombre (assertion négative)
 +
 +Bref, c'est encore à développer
regex.1480423242.txt.gz · Dernière modification: 2018/10/13 20:32 (modification externe)