Les expressions régulières dans QuickEdit

Oui. Le plus simple est de voir une expression régulière comme une sorte de langage permettant de décrire ce que l'on veut rechercher, plutôt que comme une chaîne de caractères exacte.

QuickEdit utilise les expressions régulières du moteur Java, ce qui permet d'utiliser les principaux éléments classiques des regex.


1. La recherche normale

Sans expression régulière, si tu recherches :

bonjour

QuickEdit cherche exactement :

bonjour

Avec une expression régulière, tu peux dire :

« cherche quelque chose qui ressemble à ceci ».

Par exemple :

bonjour|salut

signifie :

chercher bonjour OU salut.


2. Les caractères les plus importants

Voici les éléments à connaître en priorité.

Expression Signification Exemple
. n'importe quel caractère b.n → ban, bon, bin
* zéro ou plusieurs fois ab* → a, ab, abb
+ une ou plusieurs fois ab+ → ab, abb, abbb
? zéro ou une fois colou?r → color, colour
[abc] un caractère parmi ceux indiqués [abc] → a, b ou c
[0-9] un chiffre 0 à 9
[a-z] une lettre minuscule a à z
[A-Z] une lettre majuscule A à Z
[^abc] tout sauf a, b, c autre caractère
\d un chiffre 0, 1, 25, etc.
\s espace/blanc espace, tabulation, etc.
\w caractère de mot lettres, chiffres, _
| OU chat|chien
(...) groupe (chat|chien)

3. + : un ou plusieurs caractères

C'est particulièrement utile dans ton cas.

[0-9]+

signifie :

un ou plusieurs chiffres

Donc cela correspond à :

7
12
123
2026

Mais pas à :

abc

C'est exactement le principe de :

\d+

qui signifie :

+ un ou plusieurs chiffres +

Donc :

7
12
123

sont trouvés.


4. * : zéro ou plusieurs

La différence entre + et * est importante.

+

[0-9]+

Il faut au moins un chiffre.

Correspond :

7
25
123

*

[0-9]*

Il peut y avoir zéro chiffre ou plusieurs chiffres.

Cela peut donc également correspondre à une chaîne vide.

👉 En pratique, quand tu veux dire « il doit y avoir quelque chose », utilise généralement +.


5. ? : facultatif

Par exemple :

https?

signifie :

http

suivi éventuellement de :

s

Donc cela trouve :

http
https

6. Les crochets [ ]

Les crochets permettent de définir un caractère parmi plusieurs possibilités.

[abc]

signifie :

un caractère qui est a, b ou c.

Par exemple :

[0-9]

signifie :

un chiffre entre 0 et 9.

Et :

[a-z]

signifie :

une lettre minuscule entre a et z.

On peut combiner :

[a-zA-Z0-9]

pour dire :

une lettre minuscule, une lettre majuscule ou un chiffre.


7. [^...] : tout sauf

Le ^ placé à l'intérieur des crochets signifie « sauf ».

Par exemple :

[^0-9]

signifie :

un caractère qui n'est pas un chiffre.

Autre exemple :

[^"]+

signifie :

un ou plusieurs caractères qui ne sont pas des guillemets.

C'est très pratique pour rechercher du contenu entre deux caractères.


8. . : n'importe quel caractère

Le point :

.

est un caractère spécial.

Il signifie approximativement :

n'importe quel caractère.

Ainsi :

c.t

peut trouver :

cat
cet
cit
cot
cut

Mais attention : le point est donc beaucoup plus large qu'un simple point ..

Si tu veux réellement rechercher un point, il faut l'écrire :

\.

9. \d, \s, \w

Ce sont des raccourcis très pratiques.

\d

\d

= un chiffre.

Équivalent pratique :

[0-9]

Donc :

\d+

= un ou plusieurs chiffres.


\s

\s

= un espace ou autre caractère d'espacement.

Par exemple :

bonjour\smonde

peut rechercher :

bonjour monde

\w

\w

= caractère de mot.

C'est notamment utilisé pour les lettres, chiffres et _.


10. | signifie « OU »

Très pratique.

chat|chien

cherche :

chat

ou :

chien

On peut également utiliser des groupes :

(chat|chien|lapin)

11. Les parenthèses ( )

Les parenthèses servent à regrouper des éléments.

Par exemple :

(chat|chien)s?

permet de rechercher :

chat
chats
chien
chiens

Le groupe est :

(chat|chien)

et le ? s'applique au s.


12. ^ et $

Ils sont très importants pour contrôler le début et la fin.

^

Signifie :

début du texte ou de la ligne, selon le contexte.

Par exemple :

^Bonjour

trouve :

Bonjour Michel

mais pas :

Bonjour Michel
Bonjour à tous

si Bonjour n'est pas au début de la zone recherchée.

$

Signifie :

fin du texte ou de la ligne, selon le contexte.

Par exemple :

fin$

recherche fin lorsqu'il se trouve à la fin.


13. Une application très utile dans QuickEdit

Supposons que tu veuilles supprimer toutes les lignes commençant par :

DEBUG:

Tu peux rechercher :

^DEBUG:.*$

Explication :

^

début de ligne

DEBUG:

le texte recherché

.*

n'importe quels caractères, zéro ou plusieurs

$

fin de ligne

Tu peux alors remplacer la correspondance par rien.


14. Ton exemple 7

Prenons précisément celui que tu viens d'utiliser :

\d+

On peut le lire morceau par morceau :

Élément Signification
caractère exact
\d un chiffre
+ un ou plusieurs
caractère exact

Donc :

\d+

veut dire :

trouver , puis un ou plusieurs chiffres, puis .

C'est une bonne illustration de la puissance des expressions régulières.


15. Les caractères spéciaux à connaître

Certains caractères ont une signification particulière :

.  *  +  ?  ^  $  (  )  [  ]  {  }  |

Si tu veux rechercher l'un de ces caractères littéralement, il faut souvent l'échapper avec \.

Par exemple, pour rechercher réellement :

.

on utilise :

\.

Pour rechercher :

?

on utilise :

\?

Pour rechercher :

+

on utilise :

\+

16. Les accolades { }

Elles permettent de préciser combien de fois quelque chose doit apparaître.

Exactement 3 fois

[0-9]{3}

trouve :

123
456
999

mais pas :

12
1234

Entre 2 et 4 fois

[0-9]{2,4}

trouve :

12
123
1234

Au moins 2 fois

[0-9]{2,}

trouve :

12
123
123456

17. Une petite « boîte à outils » à retenir

Tu n'as pas besoin de mémoriser tout le langage des regex.

Pour ton utilisation de QuickEdit, je te conseille de commencer avec seulement ceci :

.       n'importe quel caractère
*       zéro ou plusieurs
+       un ou plusieurs
?       zéro ou un
[abc]   a, b ou c
[0-9]   un chiffre
[a-z]   une lettre minuscule
[^...]  sauf ces caractères
\d      un chiffre
\s      un espace
\w      caractère de mot
|       OU
(...)   groupe
^       début
$       fin
{n}     exactement n fois
{n,m}   entre n et m fois

Et surtout

Une expression régulière se lit de gauche à droite.

Par exemple :

[0-9]+

se lit simplement :

→ un ou plusieurs chiffres →

C'est beaucoup plus facile à comprendre ainsi que d'essayer de mémoriser les regex comme des formules mathématiques.

Quelques exemples utiles dans QuickEdit

\d+

→ tous les nombres

[A-Z]+

→ une ou plusieurs lettres majuscules

https?://

→ http:// ou https://

^#

→ les lignes qui commencent par #

\.$

→ les lignes qui se terminent par un point

\d+

→ les marqueurs parasites que tu viens de supprimer.

*Le plus important est donc de comprendre [], +, `,?,(),|,^et$`.** Avec ces quelques éléments, tu peux déjà faire énormément de nettoyage dans QuickEdit.

Gestionnaire de fichiers+

Les recherches utiles à essayer

Voici une petite « boîte à outils » pour Gestionnaire de fichiers+.

Recherche Signification
*.html Tous les fichiers .html
*.htm Tous les fichiers .htm
*.htm? .html et autres extensions correspondant au motif
*.php Tous les PHP
*.css Tous les CSS
*.js Tous les JavaScript
*.md Tous les Markdown
*.txt Tous les fichiers texte
image* Noms commençant par image
*image* Noms contenant image
*image Noms terminant par image
test* Noms commençant par test
test?.html test1.html, testA.html, etc.
page??.html page01.html, pageAB.html, etc.

Très pratique : rechercher plusieurs variantes

Avec :

*.htm?

tu as découvert une possibilité particulièrement pratique pour ton travail Web.

On peut également essayer des motifs comme :

*.jp?

pour rechercher par exemple :

.jpg
.jpeg

ou :

*.pn?

pour tester les variantes correspondant au motif.


Attention : ce n'est pas une vraie expression régulière

C'est le point essentiel.

Gestionnaire de fichiers+

*.html

utilise probablement un motif avec jokers.

QuickEdit+

\.html$

est une expression régulière.

Les symboles ne veulent donc pas forcément dire la même chose.

Par exemple :

Symbole Joker de fichier Regex
* plusieurs caractères zéro ou plusieurs occurrences du caractère précédent
? un caractère zéro ou une occurrence du caractère précédent
. généralement caractère normal n'importe quel caractère
[] pas nécessairement disponible classe de caractères
^ pas nécessairement disponible début de chaîne
$ pas nécessairement disponible fin de chaîne

Une chose intéressante à tester

Maintenant que nous savons que * et ? fonctionnent dans ton Gestionnaire de fichiers+, on peut déterminer assez précisément quels jokers son moteur de recherche accepte réellement.

Par exemple, tu peux tester successivement :

*.html
*.htm?
*test*
test*
*test
test?.html
test??.html

et surtout :

*.[ch]

ou :

*.{html,htm}

Ces deux derniers tests sont intéressants car ils permettront de voir si le moteur va au-delà de * et ?.

La fiche Google Play confirme bien que File Manager Plus dispose d'une fonction de recherche, mais ne documente pas la grammaire exacte des motifs. 1

Donc plutôt que de supposer que c'est une regex, on peut établir expérimentalement la syntaxe exacte que ton Gestionnaire de fichiers+ accepte.