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
bonjourOUsalut.
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,bouc.
Par exemple :
[0-9]
signifie :
un chiffre entre 0 et 9.
Et :
[a-z]
signifie :
une lettre minuscule entre
aetz.
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.