Vérification d’un texte avec les regex
Les expressions régulières (abrégée Regexp ou Regex) sont de très puissants outils pour rechercher/remplacer rapidement du texte. Elles sont la plupart du temps utilisées dans des programmes ou des pages web. Mais elles peuvent être aussi extrêmement utiles dans le cadre de texte simple : un article, un rapport, un roman !
Le but de cet article est de partager avec vous une liste de regex pratique que j’ai écrite/trouvé et qui m’ont justement aidé pour faire certaines vérifications sur mes textes.
Notez que les regex sont disponibles dans les logiciels d’éditions comme InDesign (onglet GREP dans le menu rechercher/remplacer)
Regexp pour trouver/corriger des fautes potentielles ou des problèmes de document \. [a-z]
pour afficher tous les points suivit d’une espace et d’une minuscule.
[^\.] [A-Z]
Pour afficher toutes les majuscules qui ne suivent pas directement après un point et une espace. (permet d’identifier des majuscules qui traine dans au milieu de nulle part)
[a-z] [A-Z]
Version qui check uniquement si la maj est précédée d’une non-maj et espace
[a-z][A-Z]
Match si la maj suit une minuscule (trouve les majuscules accidentelles dans un mot : sauCe) variante : [^ .][A-Z]
Match si avant une maj ce n’est ni une espace ni un point
\(.{5,}?\)
Trouver toutes les parenthèses ou il y a plus de 4 caractères (évite les dates) ?
pour non-greedy afin d’éviter qu’il matche plusieurs parenthèses en une fois)
\d{4}
Trouve tous les nombres à 4 chiffres (utile pour les dates) \(\d{4}\)
Trouve les nombres à 4 chiffres entre parenthèses
\w+-\w+
Trouve tous les mots liés ex: lui-même
(?<=«).*(?=»)
Trouve tout ce qui est compris entre guillemets (attention, peut poser problème si les guillemets sont sur la même ligne)
([’"]).*?\1 Trouve tout ce qui est compris entre guillemet simple ou double (en tenant compte du guillemet de début)
Gérer les espaces et les retours à la ligne
Trouver/effacer des espaces en trop en début et fin de lignes. ^[ ]{1,}
Seulement les espaces en début de ligne (a remplacer par du vide : ‘’)
[ ]{1,}$
Seulement les espaces en fin de ligne
Remplacer les espaces multiples par un seul espace. [ ]{2,}
Chercher 2 espaces ou plus partout (a remplacer par une espace : ’ ‘)
\b[ ]{2,}\b
Chercher 2 espaces ou plus dans le corps du texte, il faut qu’il y ait un mot devant et un mot derrière les multiples espaces pour qu’il soit trouvé (évite de toucher aux espaces potentiellement volontaire en début et fin de lignes)
(?<=\.) {2,}(?=[A-Z])
Trouve les espaces en début de phrase. (Uniquement 2 espaces ou plus si après un point et avant une lettre majuscule.)
\n\n
Trouve tout les double retours à la ligne (a remplacer par \n
pour remplacer par un seul retour à la ligne)
notes bonus intéressantes pour les utilisateurs de sublime text: Dans sublime text (doc sublime text search and replace) : $1
refers to first capture group (between parenthesis) $&
refers to the entire match
remplacer les minuscules après les points par des majuscules (fonctionnel dans sublime text) ctrl+H
> rechercher remplacer dans le texte cocher regex, case sensitive et décocher preserve case en face du champ replace with champs rechercher : (\. )([a-z])
champ remplacer : $1\U$2
(\u
prochain capture group en majuscule \U
tout les prochain capture group en Majuscule (jusqu’au prochain \E
) voir : upper/lower conversion )