Deux questions à propos des expressions régulières
Moderators: Stefan2, white, nsp
Deux questions à propos des expressions régulières
Bonjour,
1-Que ça soit en lors d'une "Recherche de fichiers" ou une "QuickSearch" l'expression régulière suivante
"[abc]" (->Single character (a or b or c))
fonctionne correctement, mais celle-ci :
"[^abc]" (->Single character (not a or b or c))
ne fonctionne pas.
Est-ce normal ?
2-En mode "QuickSearch" l'expression "^[ES]" ne fonctionne pas, alors qu'elle fonctionne en mode "Recheche de fichiers".
Est-ce un bug ?
Par contre, "^E" ou "^S" fonctionnent...
Merci,
Stéphane
1-Que ça soit en lors d'une "Recherche de fichiers" ou une "QuickSearch" l'expression régulière suivante
"[abc]" (->Single character (a or b or c))
fonctionne correctement, mais celle-ci :
"[^abc]" (->Single character (not a or b or c))
ne fonctionne pas.
Est-ce normal ?
2-En mode "QuickSearch" l'expression "^[ES]" ne fonctionne pas, alors qu'elle fonctionne en mode "Recheche de fichiers".
Est-ce un bug ?
Par contre, "^E" ou "^S" fonctionnent...
Merci,
Stéphane
- ghisler(Author)
- Site Admin
- Posts: 50390
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Quick search ne supporte pas les expressions régulières. Ou utilisez-vous "quick search extended"? Cela ne fait pas partie de Total Commander et utilise sa propre fonction de recherche.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Bonsoir,
Désolé pour ce post tardif, la rentrée a été difficile !
En effet, j'utilise Quick search extended". Donc OK pour dire que cette extension ne faisant pas partie de TC est hors sujet ici.
Par contre, ma première question à propos du fait que l'expression régulière [^abc] n'est pas interprétée comme "Single character (not a or b or c) " concerne aussi la recherche de fichiers dans TC lorsque je coche la case "ExpRég.".
Donc est-ce normal que le caractère ^ ne soit pas interprété correctement ?
Merci,
Stéphane
Désolé pour ce post tardif, la rentrée a été difficile !
En effet, j'utilise Quick search extended". Donc OK pour dire que cette extension ne faisant pas partie de TC est hors sujet ici.
Par contre, ma première question à propos du fait que l'expression régulière [^abc] n'est pas interprétée comme "Single character (not a or b or c) " concerne aussi la recherche de fichiers dans TC lorsque je coche la case "ExpRég.".
Donc est-ce normal que le caractère ^ ne soit pas interprété correctement ?
Merci,
Stéphane
- ghisler(Author)
- Site Admin
- Posts: 50390
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Oui, c'est normal. [^abc] trouve un caractère qui n'est pas a, b ou c. Il ne dit rien à propos du reste du nom.
Eassayez:
^[^abc]$
^ au début veut dire "commence avec le début de la ligne", et $ à la fin de la ligne.
Eassayez:
^[^abc]$
^ au début veut dire "commence avec le début de la ligne", et $ à la fin de la ligne.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Peut-être un peu tard....cortazar wrote:Bonsoir,
Désolé pour ce post tardif, la rentrée a été difficile !
En effet, j'utilise Quick search extended". Donc OK pour dire que cette extension ne faisant pas partie de TC est hors sujet ici.
Par contre, ma première question à propos du fait que l'expression régulière [^abc] n'est pas interprétée comme "Single character (not a or b or c) " concerne aussi la recherche de fichiers dans TC lorsque je coche la case "ExpRég.".
Donc est-ce normal que le caractère ^ ne soit pas interprété correctement ?
Merci,
Stéphane
Il existe deux type d’évaluation des expressions régulières :
- - Recherche : toute chaine contenant l'expression est validée. C'est le cas dans la recherche de fichier et aussi dans "QuickSearch Extended"
- Validation : toute chaine correspondant exactement à l'expression est validée. Dans TC, il est possible de simuler ce mode si on encadre l'expression par ^ et $ (début et fin de chaine)
^[^abc]$ force l’évaluation du nom de fichier dans son ensemble et dans ce cas votre interprétation de l'expression est la bonne !
Bonjour,
Merci beaucoup mais soit je m'exprime très mal, soit je ne comprends pas vos réponses.
Je vais donc prendre des exemples...
Voici le contenu du répertoire c:\temp\RegExpr\ :
[AN]
-> dans la fenêtre "Résultats:", j'obtiens
[1-6]
-> dans la fenêtre "Résultats:", j'obtiens
^[ABX]
-> dans la fenêtre "Résultats:", j'obtiens
[2-7]$
-> dans la fenêtre "Résultats:", j'obtiens
^[AB12]$
-> dans la fenêtre "Résultats:", j'obtiens
-> dans la fenêtre "Résultats:", j'obtiens
Merci,
Stéphane
Merci beaucoup mais soit je m'exprime très mal, soit je ne comprends pas vos réponses.

Je vais donc prendre des exemples...
Voici le contenu du répertoire c:\temp\RegExpr\ :
Dans la boîte de dialogue "Recherche de fichiers" ouverte suite à Alt+F7, si je mets dans le champ "Rechercher:" :AN001
BO002
DN003
EO004
JW006
KX007
MZ005
[AN]
-> dans la fenêtre "Résultats:", j'obtiens
-> ça me vaAN001
DN003
[1-6]
-> dans la fenêtre "Résultats:", j'obtiens
-> ça me vaAN001
BO002
DN003
EO004
JW006
MZ005
^[ABX]
-> dans la fenêtre "Résultats:", j'obtiens
-> ça me vaAN001
BO002
[2-7]$
-> dans la fenêtre "Résultats:", j'obtiens
-> ça me vaBO002
DN003
EO004
JW006
KX007
MZ005
^[AB12]$
-> dans la fenêtre "Résultats:", j'obtiens
-> là je ne comprends pas selon moi l'expression correspond à tous les fichiers commençants par A ou B ou finissant par 1 ou 2. Donc je devrais avoir :[Aucun fichier trouvé]
^[^AB12]$AN001
BO002
-> dans la fenêtre "Résultats:", j'obtiens
-> je ne comprends pas non plus car d'après ce que j'ai compris de vos explications l'expression correspond à tous les fichiers ne contenant ni A, ni B, ni 1, ni 2. Donc je devrais avoir :[Aucun fichier trouvé]
Pouvez-vous m'expliquer où est-ce que mon raisonnement est faux ?DN003
EO004
JW006
KX007
MZ005
Merci,
Stéphane
L'expression correspond a :stéphane wrote:Bonjour,
Merci beaucoup mais soit je m'exprime très mal, soit je ne comprends pas vos réponses.
Je vais donc prendre des exemples...
----------8< ------------------8< --------Code: Select all
^[^AB12]$
Pouvez-vous m'expliquer où est-ce que mon raisonnement est faux ?
Merci,
Stéphane
^ debut du nom de fichier
[^AB12] un seul caractère étant ni A ni B ni 1 ni 2
$ fin de fichier
Pour avoir ce que vous désirez:
il faut utiliser l'expression:tous les fichiers ne contenant ni A, ni B, ni 1, ni 2.
Code: Select all
^[^AB12]*$
il faut utiliser l'expression:tout fichier ne commençant ni par A ni par B OU se terminant ni par 1 ni par 2
Code: Select all
^[^AB]|[^12]$
il faut utiliser l'expression:tout fichier ne commençant ni par A ni par B ET se terminant ni par 1 ni par 2
Code: Select all
^([^AB12]|[^AB].*[^12])$
Regardez un tutoriel/livre sur les expression régulières et testez avec un éditeur comme editpad Lite, notepad++, pspad .... ou en ligne avec https://regex101.com/ ou autre.....
-----Édité pour ajouter quelques précisions ----