Utilisation des filtres


Lorsque vous comparez des fichiers ou des dossiers, vous pouvez utiliser des filtres pour restreindre la portée de la comparaison. Cela peut être utile lorsque vous souhaitez simplifier le résultat de la comparaison en éliminant les différences qui ne vous intéressent pas. Les filtres sont des règles basées sur des expressions régulières. WinMerge utilise le moteur d'expressions régulières populaire PCRE (Perl Compatible Regular Expressions).

Le fonctionnement de base du filtrage est simple : chaque élément qui serait normalement comparé (dossier, fichier ou ligne d'un fichier) est évalué, et si l'expression du filtre correspond à l'élément cible, le filtre est appliqué. Selon le type de filtre, l'élément est soit inclus, soit exclu de la comparaison.

Il existe différents filtres WinMerge pour les opérations de comparaison de dossiers et de fichiers :

Comparaison de dossiers : masques de fichiers et filtres de fichiers

Vous pouvez spécifier les fichiers à inclure dans une comparaison de dossiers en utilisant des masques de fichiers simples ou, pour un filtrage plus complexe, en appliquant plusieurs règles spécifiées dans un filtre de fichier.

Les fichiers et dossiers filtrés sont masqués par défaut dans le résultat, ce qui est généralement l'effet recherché. Vous pouvez cliquer sur AffichageAfficher les éléments ignorés pour les faire réapparaître, mais la fenêtre de comparaison n'affiche que des informations minimales à leur sujet. Par exemple, vous ne pouvez pas savoir si un fichier ignoré est un fichier texte ou un fichier binaire.

Comparaisons de fichiers : filtres de lignes et filtres de substitution

Les filtres de lignes s'appliquent uniquement aux opérations de comparaison de fichiers. Ils vous permettent d'ignorer les différences portant sur une seule ligne.

Les filtres de substitution s'appliquent uniquement aux opérations de comparaison de fichiers. Ils remplacent les chaînes de caractères dans le bloc de diff par des chaînes spécifiées, les comparent, et ignorent le bloc de diff si les résultats du remplacement correspondent. Ils sont utiles pour ignorer un grand nombre de changements sans intérêt.

1. Utilisation des masques de fichiers

Vous pouvez utiliser un ou plusieurs masques de fichiers spécifiant les extensions de fichiers à inclure dans une comparaison de dossiers. Tous les autres fichiers seront omis de votre sélection.

1.1. Définition et application des masques de fichiers

Définissez et appliquez un masque de fichier au moment où vous lancez votre opération de comparaison de dossiers :

  • Si vous utilisez la boîte de dialogue « Sélectionner des fichiers ou des dossiers », après avoir choisi les dossiers 1er et 2e, saisissez un ou plusieurs masques de fichiers dans le champ Filtre. Les masques sont appliqués lorsque vous démarrez l'opération de comparaison.

  • Si vous utilisez la ligne de commande WinMerge, utilisez le commutateur -f pour spécifier les masques de fichiers (voir l'exemple dans la section suivante).

1.2. Syntaxe et exemple de masques de fichiers

Vous pouvez spécifier des masques de fichiers et des filtres étendus en utilisant ce format :

        Filtre1 du Groupe1;Filtre2 ...|Filtre1 du Groupe2;Filtre2 ...|...
      
  • Le caractère | sépare les groupes de filtres et agit comme un ET logique.

  • Les filtres au sein d'un même groupe sont séparés par ; et sont interprétés avec un OU logique.

  • Un fichier est inclus seulement s'il correspond à au moins un filtre dans chaque groupe.

  • Pour inclure un caractère | (barre verticale) littéral dans une expression régulière qui n'est pas entourée de guillemets doubles (comme dans les filtres f: ou f!:), utilisez || à la place.

    Exemple : f:(abc||def)\.txt$

  • Chaque filtre (par ex., Filtre1, Filtre2) peut être de l'un des types suivants :

    *.ext

    Masque de fichier par extension (ex: *.txt)

    *.

    Fichiers sans extension (ex: README)

    !*.ext

    Exclure les fichiers correspondant à l'extension (disponible depuis 2.16.19)

    dossier\

    Dossiers cibles (doit se terminer par \) (disponible depuis 2.16.19)

    !dossier\

    Exclure les dossiers correspondants (disponible depuis 2.16.19)

    f: regexp

    Fait correspondre les noms de fichiers par expressions régulières (disponible depuis 2.16.49)

    f!: regexp

    Exclure les fichiers correspondant à la regex (disponible depuis 2.16.49)

    d: regexp

    Fait correspondre les noms de dossiers par regex (disponible depuis 2.16.49)

    d!: regexp

    Exclure les dossiers correspondant à la regex (disponible depuis 2.16.49)

    fe: expr

    Expression de filtre pour les fichiers (ex: fe:Size < 1KB) (disponible depuis 2.16.49)

    fe!: expr

    Expression de filtre pour exclure des fichiers (disponible depuis 2.16.49)

    de: expr

    Expression de filtre pour les dossiers (disponible depuis 2.16.49)

    de!: expr

    Expression de filtre pour exclure des dossiers (disponible depuis 2.16.49)

    pf: nom du filtre de fichier

    Appliquer un filtre de fichier par son nom (disponible depuis 2.16.49)

Example 1. Masque de fichier

Dans cet exemple en ligne de commande, l'opération de comparaison de dossiers inclut uniquement les fichiers avec les extensions xml ou txt. Tous les autres fichiers sont omis :

WinMergeU c:\project\docs c:\temp /f *.xml;*.txt


Example 2. Exclure des dossiers (depuis la version 2.16.19)

Dans cet exemple en ligne de commande, l'opération de comparaison de dossiers exclut les dossiers .git et .vs :

WinMergeU c:\project\docs c:\temp /f !.git\;!.vs\


Example 3. Expression de filtre (depuis la version 2.16.49)

Dans cet exemple en ligne de commande, l'opération de comparaison de dossiers inclut uniquement les fichiers ayant les extensions cpp ou h et dont la taille est inférieure à 1 Ko :

WinMergeU c:\project\docs c:\temp /f "*.cpp;*.h|fe:Size < 1KB"


1.3. Syntaxe des expressions de filtre

WinMerge permet un filtrage puissant à l'aide d'expressions opérant sur les métadonnées des fichiers, leur contenu et le contexte de comparaison. Cette section décrit les attributs, opérateurs, fonctions, types de données et règles d'évaluation pris en charge.

1.3.1. Littéraux et types

Les types de littéraux pris en charge incluent :

  • Booléen : true, false

  • Entier : entiers signés 64 bits (ex : 1024, ou avec des unités comme 100KB, 7days)

  • Réel (Double) : nombres à virgule flottante avec décimale ou exposant facultatifs (ex : 3.14, .5, 1e6)

  • Chaîne : entourée de guillemets doubles (ex : "exemple")

En interne, les valeurs peuvent être des types suivants : Booléen, Entier, Réel, Horodatage, Chaîne, Contenu de fichier, Tableau (Array), ou undefined.

1.3.2. Attributs

Les expressions de filtre prennent en charge divers attributs se rapportant aux métadonnées et au contenu des fichiers. Les noms d'attributs sont insensibles à la casse. Vous pouvez éventuellement spécifier à quel côté de la comparaison (gauche, droite ou milieu) un attribut s'applique en utilisant un préfixe.

1.3.2.1. Attributs principaux
Exists

Retourne true si le fichier existe, false sinon

Nom

Nom du fichier

Nom de base (BaseName)

Retourne le nom du fichier sans l'extension. Par exemple, « document.txt » retourne « document ».

Extension

Extension du fichier

IsFolder

Retourne true si l'élément est un dossier/répertoire, false si c'est un fichier.

Dossier

Retourne le chemin relatif en excluant le nom de fichier et le dossier de base

RelPath

Returns the relative path from the comparison root directory, including both folder path and filename. For example, if comparing "C:\Project" and the file is at "C:\Project\src\main.cpp", RelPath returns "src\main.cpp".

FullPath

Retourne le chemin complet du fichier

Taille (Size)

Taille du fichier

Date (Date)

Horodatage de dernière modification

DateStr

Chaîne de date de dernière modification au format yyyy-MM-dd

CreationTime

Horodatage de la date de création

Attributs

Retourne les attributs de fichier sous forme d'entier

AttrStr

Retourne la chaîne des attributs de fichier. Exemples : "R" pour Lecture seule, "H" pour Caché, "A" pour Archive, "S" pour fichier Système.

1.3.2.2. Attributs spécifiques aux fichiers

Les attributs suivants sont disponibles uniquement pour les éléments de comparaison de fichiers. Lorsqu'ils sont utilisés avec des dossiers, le comportement est indéfini.

Content

Contenu du fichier. Retourne une valeur de type FileContent. Seuls contains et recontains peuvent être utilisés avec ce type.

1.3.2.3. Attributs spécifiques aux dossiers

Les attributs suivants sont disponibles uniquement pour les éléments de comparaison de dossiers. Lorsqu'ils sont utilisés avec des fichiers, le comportement est indéfini.

Files

Nombre de fichiers directement contenus dans le dossier.

RecursiveFiles

Nombre de fichiers contenus dans le dossier, incluant tous les sous-dossiers.

Éléments

Nombre d'éléments (fichiers et sous-dossiers) directement contenus dans le dossier.

RecursiveItems

Nombre d'éléments (fichiers et sous-dossiers) contenus dans le dossier, incluant tous les sous-dossiers.

TotalSize

Taille totale de tous les fichiers directement contenus dans le dossier, en octets.

RecursiveTotalSize

Taille totale de tous les fichiers contenus dans le dossier, incluant tous les sous-dossiers, en octets.

1.3.2.4. Préfixes spécifiques au côté

Des préfixes peuvent être ajoutés pour spécifier le côté de la comparaison :

  • Left : S'applique au fichier du côté gauche (par ex., LeftSize)

  • Right : S'applique au fichier du côté droit (par ex., RightDate)

  • Middle : S'applique au fichier du milieu dans une comparaison à 3 voies (par ex., MiddleName)

Les attributs sans préfixe (par ex. Size) renvoient un tableau de valeurs de tous les côtés disponibles (Gauche, Milieu, Droite).

1.3.2.5. Attributs de propriétés Windows

Ces attributs permettent d'accéder aux valeurs du système de propriétés Windows, telles que les métadonnées définies par le schéma du système de propriétés Windows (par ex. System.Title, System.FileOwner, System.Image.HorizontalResolution).

Prop

Renvoie un tableau de valeurs de propriété (Gauche, Milieu, Droite) pour le nom de propriété canonique spécifié. Exemple : prop("System.Title")

LeftProp

Valeur de propriété du fichier du côté gauche. Exemple : leftprop("System.FileOwner")

MiddleProp

Valeur de propriété du fichier du milieu (dans une comparaison à 3 voies).

RightProp

Valeur de propriété du fichier du côté droit.

1.3.2.6. Évaluation de tableau

Les attributs sans préfixe de côté (par ex. Size) renvoient un tableau de valeurs de tous les côtés disponibles (Gauche, Milieu, Droite). Lors de l'application d'un opérateur à de tels tableaux, le comportement diffère selon que la comparaison se fait avec un scalaire ou un autre tableau.

1.3.2.6.1. Tableau vs Scalaire

Lors de la comparaison d'un tableau à un scalaire, l'opération est appliquée à chaque élément du tableau individuellement. Cela donne un tableau de booléens. Si un élément de ce tableau est true, l'expression globale est évaluée à true. Sinon, elle est évaluée à false.

Example 4. Exemple

[3, 5, 8] > 6 -> [false, false, true] -> true

1.3.2.6.2. Tableau vs Tableau

Lors de la comparaison de deux tableaux, le comportement dépend de l'opérateur :

  • Pour = et != : Les tableaux doivent avoir la même longueur. Le résultat est une valeur booléenne unique, pas un tableau. = renvoie true seulement si tous les éléments sont égaux. != renvoie true si au moins un élément diffère.

  • Pour tous les autres opérateurs (par ex. >, <) : l'opération est appliquée élément par élément, produisant un tableau de booléens. Le résultat final de l'expression est true si n'importe quel élément du tableau booléen est true, et false si tous les éléments sont false.

Example 5. Exemples

[2, 4] = [2, 4] -> true
[2, 4] != [2, 5] -> true (car 4 != 5)
[3, 5, 8] > [6, 4, 2]
 -> [false, true, true]
 -> true (car au moins une comparaison est vraie)
              

1.3.2.6.3. Résumé
  • Les comparaisons Tableau vs Scalaire produisent un tableau de booléens. Le résultat global de l'expression est true si au moins un élément est true.

  • La comparaison Tableau vs Tableau avec = ou != renvoie une valeur booléenne unique.

  • La comparaison Tableau vs Tableau avec d'autres opérateurs produit un tableau de booléens. Le résultat final est true si n'importe quel élément est true.

1.3.3. Opérateurs

Tous les opérateurs de comparaison de chaînes (tels que =, !=, like, matches, contains et recontains) sont actuellement insensibles à la casse.

<, <=, >, >=

Comparaison numérique, d'horodatage ou de chaîne

=

Comparaison d'égalité

!=

Comparaison d'inégalité

+, -, *, /, %

Opérateurs arithmétiques. + et - effectuent l'addition et la soustraction. * et / effectuent la multiplication et la division. % est l'opérateur modulo (reste).

and, or, not

Opérateurs logiques

like

Correspondance de chaîne avec caractères génériques (wildcards)

Vous pouvez également utiliser not like pour effectuer la correspondance inverse.

matches

Correspondance par expressions régulières

Vous pouvez également utiliser not matches pour effectuer la correspondance inverse.

contains

Vérifie si une chaîne contient une sous-chaîne

Vous pouvez également utiliser not contains pour vérifier l'absence de la sous-chaîne.

recontains

Vérifie si une sous-chaîne correspond à une expression régulière

Vous pouvez également utiliser not recontains pour garantir qu'aucune correspondance n'existe.

1.3.4. Fonctions

lineCount(content)

Renvoie le nombre de lignes dans le contenu du fichier ou le tableau de contenu de fichier sous forme d'un Integer. Si content est un tableau, le résultat est un tableau d'entiers. Exemple : lineCount(Content)

sublines(content, start, count)

Extrait le nombre spécifié de lignes en commençant par l'index de ligne donné dans le contenu du fichier ou le tableau de contenu de fichier, et les renvoie sous la forme d'une seule chaîne concaténée. Si content est un tableau, le résultat est un tableau de chaînes.

strlen(source)

Renvoie la longueur de la chaîne sous forme d'un Integer. Si source est un tableau de chaînes, le résultat est un tableau d'entiers. Exemple : strlen(Name)

substr(source, start, count)

Renvoie une plage de texte spécifique de la chaîne ou du tableau de chaînes sous forme d'une String. Si source est un tableau de chaînes, le résultat est un tableau de chaînes. Exemple : substr(Name, 0, 3)

replace(str, from, to)

Remplace toutes les occurrences de la chaîne from par to. Si str est un tableau, le résultat est un tableau de chaînes avec les remplacements appliqués. Exemple : replace(name, ".bak", ".txt")

regexReplace(str, pattern, replacement)

Remplace toutes les correspondances du motif d'expression régulière par la chaîne de remplacement. Prend en charge les références arrière ($1, $2, etc.) dans la chaîne de remplacement. Si str est un tableau, le résultat est un tableau de chaînes avec les remplacements appliqués. Exemple : regexReplace(name, "^(\\w+)_(\\w+)$", "$2_$1") permute des mots séparés par un souligné.

replaceWithList(str, filepath)

Replaces multiple strings in str using replacement rules loaded from a tab-separated file. The file format is one replacement rule per line: search_string<TAB>replacement_string. Lines starting with # are treated as comments and ignored. Empty lines are also ignored. If str is an array, the result is an array of strings with replacements applied.

File format example:

# Comment line
apple	orange
cat	dog
old	new

Exemples :

  • replaceWithList(Name, "C:\Filters\replacements.txt") - applies replacements from file to file name

regexReplaceWithList(str, filepath)

Replaces strings in str using regular expression patterns loaded from a tab-separated file. The file format is one pattern per line: regex_pattern<TAB>replacement_string. The replacement string can include backreferences ($1, $2, etc.) to captured groups. Lines starting with # are treated as comments and ignored. Empty lines are also ignored. If str is an array, the result is an array of strings with replacements applied.

File format example:

# Comment line
\d+	NUMBER
(\d{4})-(\d{2})-(\d{2})	$1_$2_$3

Exemples :

  • regexReplaceWithList(Name, "C:\Filters\regex_replacements.txt") - applies regex replacements to file name

normalizeUnicode(str[, form])

Normalise la chaîne Unicode. Le paramètre optionnel 'form' spécifie la forme de normalisation : "NFC" ou "C" (par défaut), "NFD" ou "D", "NFKC" ou "KC", "NFKD" ou "KD". On peut aussi utiliser les formes numériques : 1=NFC, 2=NFD, 5=NFKC, 6=NFKD. Si str est un tableau, le résultat est un tableau de chaînes normalisées. Exemple : normalizeUnicode(name, "NFC")

toLower(str)

Convertit tous les caractères de la chaîne en minuscules. Si str est un tableau, le résultat est un tableau de chaînes en minuscules. Exemple : toLower("Hello World") renvoie "hello world"

toUpper(str)

Convertit tous les caractères de la chaîne en majuscules. Si str est un tableau, le résultat est un tableau de chaînes en majuscules. Exemple : toUpper("Hello World") renvoie "HELLO WORLD"

toHalfWidth(str)

Convertit les caractères de pleine chasse (full-width) en caractères de demi-chasse (half-width). Principalement utilisé pour convertir les caractères alphanumériques et katakana de pleine chasse. Si str est un tableau, le résultat est un tableau de chaînes converties.

toFullWidth(str)

Convertit les caractères de demi-chasse en caractères de pleine chasse. Principalement utilisé pour convertir les caractères alphanumériques et katakana de demi-chasse. Si str est un tableau, le résultat est un tableau de chaînes converties.

toKatakana(str)

Convertit les caractères hiragana en katakana. Les caractères non-hiragana restent inchangés. Si str est un tableau, le résultat est un tableau de chaînes converties.

toHiragana(str)

Convertit les caractères katakana en hiragana. Les caractères non-katakana restent inchangés. Si str est un tableau, le résultat est un tableau de chaînes converties.

toSimplifiedChinese(str)

Convertit les caractères chinois traditionnels en caractères chinois simplifiés. Les caractères qui n'ont pas de forme simplifiée restent inchangés. Si str est un tableau, le résultat est un tableau de chaînes converties.

toTraditionalChinese(str)

Convertit les caractères chinois simplifiés en caractères chinois traditionnels. Les caractères qui n'ont pas de forme traditionnelle restent inchangés. Si str est un tableau, le résultat est un tableau de chaînes converties.

now()

Renvoie la date et l'heure actuelles sous forme d'une valeur Timestamp.

today()

Renvoie la date du jour sous forme d'une valeur Timestamp représentant 00:00:00.000 au début de la journée.

startOfWeek(timestamp)

Renvoie le premier jour de la semaine, qui est toujours le dimanche quel que soit le paramètre régional.

startOfMonth(timestamp)

Renvoie le premier jour du mois.

startOfYear(timestamp)

Renvoie le premier jour de l'année.

toDateStr(timestamp)

Convertit l'horodatage donné en une chaîne de date au format yyyy-MM-dd. Si timestamp est un tableau d'horodatages, le résultat est un tableau de chaînes.

abs(value)

Renvoie la valeur absolue de l'entier ou du tableau d'entiers. Si value est un tableau d'entiers, le résultat est un tableau d'entiers.

allof(booleans)

Renvoie true si tous les éléments du tableau de booléens satisfont à la condition.

allequal(array)

Renvoie true si toutes les valeurs du tableau sont égales.

isWithin(value, min, max)

Renvoie true si value se situe dans la plage [min, max] (inclusif aux deux extrémités). Prend en charge les entiers, les nombres à virgule flottante, les horodatages et les chaînes (comparaison insensible à la casse). Si value est un tableau, le résultat est un tableau de booléens où chaque élément est vérifié individuellement.

Exemples :

  • isWithin(5, 1, 10) renvoie true

  • isWithin(Size, 1KB, 10MB) vérifie si la taille de l'un des fichiers est comprise entre 1 Ko et 10 Mo

  • isWithin(Date, today() - 7days, today()) vérifie si le fichier a été modifié au cours de la dernière semaine

  • allof(isWithin(Size, 1KB, 10MB)) vérifie si toutes les tailles de fichiers sont comprises entre 1 Ko et 10 Mo

inRange(value, min, max)

Renvoie true si value se situe dans la plage [min, max) (borne inférieure incluse, borne supérieure exclue). Prend en charge les entiers, les nombres à virgule flottante, les horodatages et les chaînes (comparaison insensible à la casse). Si value est un tableau, le résultat est un tableau de booléens où chaque élément est vérifié individuellement.

Exemples :

  • inRange(5, 1, 10) renvoie true

  • inRange(10, 1, 10) renvoie false

  • inRange(Size, 0, 1MB) vérifie si la taille de l'un des fichiers est inférieure à 1 Mo

  • anyof(inRange(Date, startOfMonth(today()), today())) vérifie si un fichier a été modifié ce mois-ci (aujourd'hui exclu)

logError(value1, value2, ...), logWarn(value1, value2, ...), logInfo(value1, value2, ...)

Envoie la représentation sous forme de chaîne concaténée de tous les arguments dans le journal (respectivement au niveau erreur, avertissement ou information), séparés par des espaces, et renvoie la valeur du dernier argument. Ces fonctions sont utiles pour déboguer les expressions de filtre.

Exemples (utilisant la valeur de retour) :

  • logInfo("File size:", Size) > 1MB - consigne la/les taille(s) de fichier et vérifie si elle est supérieure à 1 Mo

  • logWarn("Processing:", Name) like "*.tmp" - consigne le/les nom(s) de fichier et vérifie s'il s'agit d'un fichier temporaire

  • Size > 1KB and logInfo("Large file:", Name) contains "test" - ne consigne que si la condition de taille est vraie, puis vérifie le nom

if(condition, trueValue, falseValue)

Renvoie trueValue si la condition est évaluée à vrai, sinon renvoie falseValue. Cette fonction effectue une évaluation en court-circuit (elle n'évalue que la branche qui sera renvoyée).

Exemples :

  • if(Size > 1MB, "large", "small") - renvoie "large" ou "small" selon la taille du fichier

  • if(Extension = "txt", "text file", "other file") - classifie les fichiers par extension

  • if(Exists, Size, 0) - renvoie la taille du fichier ou 0 si le fichier n'existe pas

ifEach(conditionArray, trueValue, falseValue)

Sélection conditionnelle par élément. Pour chaque élément de conditionArray, renvoie l'élément correspondant de trueValue si la condition est vraie, sinon renvoie l'élément correspondant de falseValue. Si trueValue ou falseValue est un scalaire, il est diffusé à tous les éléments.

Exemples :

  • ifEach(Size > 1MB, "large", "small") - renvoie un tableau d'étiquettes "large"/"small" pour chaque fichier

  • ifEach(array(true, false, true), array("a", "b", "c"), array("x", "y", "z")) - renvoie array("a", "y", "c")

  • anyof(ifEach(Size > 100KB, Size < 10MB, false)) - vérifie si l'un des fichiers est compris entre 100 Ko et 10 Mo

choose(index, value0, value1, ...)

Sélectionne une valeur parmi les arguments en fonction de l'index. Si l'index est 0, renvoie value0 ; s'il est 1, renvoie value1, etc. Les indices négatifs sont ramenés à 0. Les indices au-delà de la dernière valeur renvoient la dernière valeur.

Exemples :

  • choose(0, "first", "second", "third") - renvoie "first"

  • choose(DiffCode % 3, "equal", "different", "unique") - associe des codes de diff à des étiquettes

  • choose(5, "a", "b", "c") - renvoie "c" (hors limites, renvoie la dernière valeur)

chooseEach(indexArray, value0, value1, ...)

Sélection de valeurs par élément. Pour chaque index de indexArray, sélectionne la valeur correspondante dans les arguments restants. Si indexArray est un scalaire, se comporte comme choose.

Exemples :

  • chooseEach(array(0, 1, 2), "a", "b", "c") - renvoie array("a", "b", "c")

  • chooseEach(array(0, 0, 1), "x", "y") - renvoie array("x", "x", "y")

  • chooseEach(array(2, 0, 1), "first", "second", "third") - renvoie array("third", "first", "second")

andEach(value1, value2), orEach(value1, value2), notEach(value)

Opérations logiques par élément. Ces fonctions opèrent sur des booléens, des tableaux de booléens ou une combinaison des deux :

  • andEach - Opération ET logique

  • orEach - Opération OU logique

  • notEach - Opération NON logique (argument unique)

Lorsque les arguments sont des scalaires, renvoie un résultat booléen scalaire. Lorsqu'un argument est un tableau et l'autre un scalaire, le scalaire est diffusé à tous les éléments. Lorsque les deux arguments sont des tableaux, effectue l'opération élément par élément.

Exemples :

  • andEach(Size > 1KB, Size < 1MB) - fichiers entre 1 Ko et 1 Mo

  • orEach(Extension = "txt", Extension = "log") - fichiers txt ou log

  • notEach(Exists) - fichiers qui n'existent pas

  • allof(andEach(Exists, Size > 0)) - tous les fichiers existent avec une taille non nulle

  • anyof(notEach(Size > 1MB)) - n'importe quel fichier de 1 Mo ou moins

1.3.5. Unités

Les tailles de fichiers prennent en charge ces suffixes :

Ko, Mo, Go, To

Les durées prennent en charge ces suffixes :

semaines, semaine, s, jours, jour, j, heures, heure, hr, h, minutes, minute, min, m, secondes, seconde, sec, s, millisecondes, milliseconde, msec, ms

1.3.6. Exemples

  • Size < 10KB - La taille de n'importe quel côté est inférieure à 10 Ko

  • LeftSize >= 10MB - Le fichier du côté gauche fait au moins 10 Mo

  • allof(Size < 1MB) - Tous les côtés font moins de 1 Mo

  • abs(LeftSize - RightSize) < 1KB - La différence de taille est faible

  • DateStr = "2025-07-20" - Le fichier a été modifié pour la dernière fois à cette date

  • Date >= today() - Modifié aujourd'hui ou plus tard

  • isWithin(Date, today() - 7days, today()) - Fichier modifié au cours de la dernière semaine

  • inRange(Size, 1KB, 10MB) - La taille du fichier est comprise entre 1 Ko (inclus) et 10 Mo (exclu)

  • allof(isWithin(Size, 100KB, 1MB)) - Toutes les tailles de fichiers sont comprises entre 100 Ko et 1 Mo

  • AttrStr contains "R" - Le fichier est en lecture seule

  • Name matches "file[0-9]\.txt" - Regex sur le nom du fichier

  • Content contains "Test" - Le contenu du fichier contient le mot-clé

  • sublines(Content, 0, 1) contains "XML" - La première ligne contient "XML"

  • (Extension = "log" and Size > 10MB) or (Date < today() - 7days) - Gros fichiers journaux ou fichiers de plus d'une semaine

  • AttrStr not contains "H" and Name like "*.tmp" - Fichiers temporaires non cachés

  • isWithin(Extension, "a", "m") and inRange(Size, 0, 1MB) - Fichiers avec extensions de 'a' à 'm' et taille inférieure à 1 Mo

  • toLower(Name) = "readme.txt" - Correspondance de nom de fichier insensible à la casse

  • toHalfWidth(Name) like "*.txt" - Correspondance après conversion pleine chasse en demi-chasse

2. Utilisation des filtres de fichiers

Les filtres de fichiers sont des fichiers texte portant l'extension flt. Ils vous permettent d'appliquer plusieurs règles de filtrage à une comparaison de dossiers. Contrairement aux masques de fichiers, les filtres de fichiers peuvent inclure ou exclure des correspondances.

WinMerge installe un certain nombre de filtres de fichiers prédéfinis. Si ces filtres ne fournissent pas le filtrage dont vous avez besoin, vous pouvez créer les vôtres. Pour faciliter cette tâche, WinMerge fournit également un fichier modèle nommé FileFilter.tmpl. Cette section décrit comment appliquer des filtres de fichiers aux comparaisons et documente la syntaxe des filtres de fichiers. Utilisation de la boîte de dialogue Filtres décrit comment ajouter, modifier et gérer les filtres.

2.1. Emplacements des filtres de fichiers

WinMerge détecte automatiquement les filtres de fichiers dans ces emplacements :

Sous-dossier Filters dans le dossier d'installation de WinMerge

C'est ici que sont installés les filtres de fichiers prédéfinis. Par exemple, C:\Program Files\WinMerge\Filters. Vous pouvez créer ou copier des fichiers de filtres à cet endroit pour les mettre à la disposition de tous les utilisateurs de votre système.

Avant de créer un nouveau filtre de fichiers, vérifiez si les filtres prédéfinis ne contiennent pas déjà ce dont vous avez besoin. Sinon, vous pourriez trouver des exemples de règles utiles dans les fichiers existants.

Dossier de filtres privé par défaut

L'emplacement de ce dossier est défini dans la page Système des options de WinMerge. Par défaut, il est spécifié comme un sous-dossier dans votre dossier de profil utilisateur (par exemple, Documents sous Windows 10). Les filtres créés ou copiés ici ne sont normalement visibles que par vous. Si vous créez de nouveaux filtres de fichiers, vous pouvez les copier ici pour les garder privés.

Avant de pouvoir appliquer des filtres de fichiers existant dans un autre dossier, vous devez d'abord les installer.

2.2. Appliquer des filtres de fichiers

Vous pouvez appliquer un filtre de fichier en utilisant l'une de ces méthodes :

  • Lorsque vous lancez une comparaison de dossiers à partir de la boîte de dialogue Sélectionner des fichiers ou des dossiers :

    1. Après avoir choisi les dossiers 1er et 2e, cliquez sur Sélectionner à côté du champ Filtre.

    2. Dans la boîte de dialogue Filtres, utilisez l'onglet Filtres de fichiers pour choisir un filtre et le charger dans le champ Filtre.

      Note

      Si un filtre de fichier est actuellement activé, le filtre sélectionné est déjà chargé dans le champ Filtre.

    3. Procédez à l'opération de comparaison. Le fichier présent dans le champ Filtre est appliqué au démarrage de l'opération.

  • Pour modifier le filtrage des fichiers après avoir déjà lancé une opération de comparaison de dossiers (par exemple, pour appliquer un filtre différent ou désactiver le filtrage) :

    1. Cliquez sur OutilsFiltres.

    2. Dans la boîte de dialogue Filtres, configurez votre nouveau réglage de filtre de fichier, puis cliquez sur OK.

    3. Le nouveau filtrage n'est pas appliqué automatiquement à la fermeture de la boîte de dialogue Filtres : appuyez sur F5 pour voir les nouveaux résultats dans la fenêtre de comparaison de dossiers.

  • Lorsque vous lancez une comparaison de dossiers depuis la ligne de commande WinMerge, utilisez le drapeau -f pour spécifier un filtre de fichier.

2.3. Syntaxe des filtres de fichiers

Cette section décrit la syntaxe des filtres de fichiers de WinMerge et fournit des directives pour les rédiger.

Le délimiteur de commentaire est ##. Après un délimiteur de commentaire, tous les caractères d'une ligne sont ignorés. WinMerge ignore la plupart des caractères d'espacement dans les règles. Cependant, un commentaire doit toujours être précédé d'un ou plusieurs caractères d'espacement (espace ou tabulation). Pour utiliser ## comme caractères dans une règle, omettez le préfixe d'espace.

Les deux premières lignes requises d'un filtre de fichier sont :

name

Le nom du filtre tel qu'il apparaît dans la boîte de dialogue Fichiers

def

Le type de filtrage à appliquer. Spécifiez l'une de ces valeurs :

include

Inclut tout, sauf les éléments correspondant à la règle spécifiée.

exclude

Exclut tout, sauf les éléments correspondant à la règle spécifiée.

Lorsque vous choisissez la méthode d'exclusion (exclude), vous devez également ajouter une règle d (répertoire) qui spécifie les sous-dossiers. C'est généralement une bonne idée de spécifier tous les sous-dossiers, comme ceci :

d: \\*$ ## Subfolders

Tip

Ne confondez pas ces termes. Rappelez-vous que, dans les filtres de fichiers, une règle include ne spécifie pas ce qu'il faut inclure, elle spécifie ce qu'il ne faut pas inclure. De même, exclude ne spécifie pas ce qu'il faut exclure, elle spécifie ce qu'il ne faut pas exclure.

Ensuite, votre fichier doit contenir une ou plusieurs règles de filtrage. Vous pouvez ajouter autant de règles que vous le souhaitez. Il doit y avoir une règle par ligne, et chaque règle doit tenir sur une seule ligne (aucun saut de ligne n'est autorisé dans une règle). Une règle commence par un indicateur de type, suivi soit d'une expression régulière, soit d'une expression de filtre. Les indicateurs de type pris en charge sont :

f: regexp

Faire correspondre les noms de fichiers à l'aide d'expressions régulières

f!: regexp

Exclure les fichiers correspondant à la regex (Disponible depuis la 2.16.19)

d: regexp

Faire correspondre les noms de dossiers à l'aide d'une regex

d!: regexp

Exclure les dossiers correspondant à la regex (Disponible depuis la 2.16.19)

fe: expr

Expression de filtre pour les fichiers (ex: fe:Size < 1KB) (disponible depuis 2.16.49)

fe!: expr

Expression de filtre pour exclure des fichiers (disponible depuis 2.16.49)

de: expr

Expression de filtre pour les dossiers (disponible depuis 2.16.49)

de!: expr

Expression de filtre pour exclure des dossiers (disponible depuis 2.16.49)

e: expr

Filter expression applied to both files and folders (e.g. e:Name like "Common*.*") (Available since 2.16.56)

e!: expr

Filter expression to exclude both files and folders (Available since 2.16.56)

Parmi les nombreux caractères spéciaux de regex, les suivants sont particulièrement importants dans les règles de filtrage de fichiers :

^ (début de ligne)

Fréquemment requis pour que les règles fonctionnent correctement.

$ (fin de ligne)

Fréquemment requis pour que les règles fonctionnent correctement. Par exemple :

\.c$ ## ne correspond qu'aux noms de fichiers ayant l'extension c.
\.c  ## correspond à toute extension commençant par c, comme cpp et com.
\ (échappement)

Force les caractères spéciaux à correspondre à des caractères normaux. Par exemple, pour faire correspondre un nom de dossier, faites précéder le délimiteur barre oblique inversée du dossier d'une barre oblique inversée (\\). Pour faire correspondre le point dans un nom de fichier, spécifiez une barre oblique inversée suivie d'un point (\.).

Aucun caractère spécial ni caractère générique n'est utilisé pour faire correspondre les noms de fichiers. Pour faire correspondre tous les noms de fichiers d'un certain type, omettez simplement le nom du fichier.

Les règles sont insensibles à la casse. Par exemple, f: \.bat$ correspond à winmerge.bat et à compare.BAT.

Example 6. Exemples de règles de filtrage de fichiers

Quelques règles de filtrage de fichiers simples :

f: \.cpp$ ## Correspond aux fichiers *.cpp
f: \.h$ ## Correspond aux fichiers *.h
f: ^My ## Correspond aux fichiers My*.*
f: Dlg\. ## Correspond aux fichiers *Dlg.*
d: \\test$ ## Correspond aux dossiers test
d: ^\\Build$ ## Correspond aux dossiers Build
d: Temp$ ## Correspond aux dossiers *Temp (par exemple, FirstTemp)
d: Src ## Correspond aux dossiers *Src*

Quelques règles avec des expressions régulières plus complexes :

f: ^\.#.*$ ## fichiers .#nom_fichier.version
f: Dlg\.c(pp)?$ ## fichiers *Dlg.c et *Dlg.cpp
f: ^I.*\.h$ ## fichiers I*.h
f: Srv[1-9]\.def$ ## fichiers *Srv1.def à *Srv9.def
f: ^[h,k,m] ## fichiers h*.*, k*.*, et m*.*

3. Utilisation des filtres de lignes

Dans une comparaison de fichiers, vous pouvez utiliser des filtres de lignes pour ignorer des lignes individuelles. Par exemple, vous pourriez utiliser des filtres de lignes pour ignorer les commentaires ou certains types de code généré, comme les horodatages des systèmes de contrôle de version. Chaque filtre de ligne est une règle, et vous pouvez appliquer n'importe quel nombre de filtres de lignes à une comparaison de fichiers.

Pour apprendre à ajouter, modifier et gérer les filtres, voir Utilisation de la boîte de dialogue Filtres.

3.1. Application des filtres de lignes

Vous pouvez appliquer des filtres de lignes en utilisant l'une de ces méthodes :

  • Lorsque vous lancez une comparaison de fichiers à partir de la boîte de dialogue Sélectionner des fichiers ou des dossiers

    1. Après avoir choisi le 1er et le 2e fichiers, cliquez sur Sélectionner à côté du champ Filtre.

    2. Dans la boîte de dialogue Filtres, utilisez l'onglet Filtres de lignes pour activer les filtres que vous souhaitez utiliser (le cas échéant), ou pour voir quels filtres sont actuellement activés.

      Note

      Le champ Filtre n'indique pas quels filtres de lignes sont activés.

    3. Poursuivez l'opération de comparaison de fichiers. Les filtres de lignes activés sont appliqués au démarrage de l'opération.

  • Après avoir déjà lancé une opération de comparaison de fichiers (par exemple, pour appliquer des filtres différents ou désactiver le filtrage) :

    1. Cliquez sur OutilsFiltres.

    2. Ouvrez l'onglet Filtres de fichiers.

    3. Cochez les filtres de lignes individuels que vous souhaitez appliquer, et décochez ceux que vous ne souhaitez pas appliquer.

      Vous pouvez également ajouter, modifier et supprimer des filtres de la liste en utilisant les boutons Nouveau, Modifier et Supprimer.

    4. Pour activer le filtrage de lignes, cochez Activer les filtres de lignes. Pour le désactiver, décochez l'option.

    5. Cliquez sur OK pour fermer la boîte de dialogue Filtres de fichiers.

    6. Appuyez sur F5 pour appliquer vos modifications et actualiser la fenêtre de comparaison de fichiers.

3.2. Syntaxe des filtres de lignes

Un filtre de ligne est une règle qui est évaluée par rapport à chaque différence sur une seule ligne dans vos fichiers comparés, si les règles de filtrage de lignes sont activées. Lorsqu'une règle correspond à une différence sur une seule ligne, la différence est ignorée.

Les différences ignorées sont marquées dans la fenêtre de comparaison de fichiers avec la couleur Différence ignorée (telle que définie dans la page Couleurs des options de WinMerge). Cela vous permet de distinguer les différences ignorées des autres types. Cependant, vous ne pouvez pas sélectionner ni fusionner une différence ignorée.

La correspondance des filtres de lignes peut être décrite en deux points :

  • Lorsqu'une règle correspond à n'importe quelle partie de la ligne, la différence entière est ignorée. Par conséquent, vous ne pouvez pas filtrer seulement une partie d'une ligne. Par exemple, supposons que deux fichiers présentent la différence suivante sur une seule ligne :

    Fichier1 : 

    # Jean Sibelius

    Fichier2 : 

    # Janne Sibelius

    Sans filtrage, la ligne est détectée comme une différence. Mais si nous appliquons une règle de filtrage de ligne avec l'expression ^#, les lignes sont signalées comme identiques, car l'expression ne spécifie que le premier caractère, qui correspond dans les deux fichiers.

  • Une règle ne s'applique à une différence de plusieurs lignes que si toutes les lignes correspondent. Par exemple, considérons cette différence de deux lignes :

    Fichier1 : 

    # Jean Sibelius
    # Pekka Himanen

    Fichier2 : 

    # Janne Sibelius
    Pekka Himanen

    La même règle ^# correspond à la première ligne, mais pas à la seconde. Par conséquent, la différence n'est pas ignorée.

Tip

C'est généralement une bonne pratique d'utiliser les marqueurs de début de ligne ( ^ ) et de fin de ligne ( $ ) pour contrôler vos motifs avec précision, car la règle est appliquée si n'importe quelle partie d'une ligne correspond à l'expression.

Example 7. Exemples de filtres de lignes

^MYTAG$

Filtre les lignes qui correspondent exactement à MYTAG

^::

Filtre les lignes commençant par ::

^/\*.*\*/$

Filtre les lignes commençant par /* et se terminant par */

^[1-5]00

Filtre les lignes commençant par les nombres 100, 200, 300, 400 et 500


Example 8. Règle de filtrage de ligne correspondant aux lignes d'ID CVS

Les lignes d'ID CVS ressemblent à ceci :

// $Id: Filters.xml 7591 2013-01-20 15:47:42Z christianlist $

... et peuvent être filtrées avec cette règle :

^// \WId: .*\$

Example 9. Filtrer les commentaires de numéro de ligne dans les fichiers po

les commentaires de numéro de ligne po ressemblent à ceci :

#: src/filename.c:766

... et peuvent être filtrées avec cette règle :

^#

4. Utilisation des filtres de substitution

À déterminer

5. Utilisation de la boîte de dialogue Filtres

Cette section décrit la boîte de dialogue Filtres, qui fournit des fonctions pour créer et gérer les filtres de fichiers et les filtres de lignes.

Pour ouvrir la boîte de dialogue Filtres, utilisez l'une ou l'autre de ces méthodes :

  • Dans la boîte de dialogue Sélectionner des fichiers ou des dossiers, cliquez sur Sélectionner à droite du champ Filtre. Vous utilisez cette méthode lorsque vous souhaitez appliquer un filtre de fichier à une opération de comparaison de dossiers.

  • Cliquez sur OutilsFiltres. Cette méthode peut être utilisée à tout moment, sauf lorsque la boîte de dialogue Sélectionner des fichiers ou des dossiers est ouverte.

La boîte de dialogue Filtres possède un onglet pour chaque type de filtre WinMerge :

Filtres de fichiers

Choisissez cet onglet pour travailler avec les filtres de fichiers pour les opérations de comparaison de dossiers.

Filtres de lignes

Choisissez cet onglet pour travailler avec les filtres de lignes pour les opérations de comparaison de fichiers.

Filtres de substitution

Choisissez cet onglet pour travailler avec les filtres de substitution pour les opérations de comparaison de fichiers.

5.1. Utilisation de l'onglet Filtres de fichiers

La partie principale de cet onglet est une liste de filtres de fichiers disponibles pour les opérations de comparaison de dossiers. La liste comprend les filtres de fichiers partagés, privés et installés que WinMerge connaît, comme décrit dans Emplacements des filtres de fichiers.

5.1.1. Activation et désactivation des filtres de fichiers

Vous devez activer un filtre de fichier pour le rendre disponible dans une opération de comparaison de dossiers, ou désactiver un filtre actuel pour qu'il ne soit plus utilisé :

  1. Ouvrez la boîte de dialogue Filtres, si elle n'est pas déjà ouverte.

  2. Sélectionnez un filtre de fichier ou <Aucun> dans la liste.

  3. Cliquez sur OK pour fermer la boîte de dialogue Filtres.

Il existe plusieurs façons d'appliquer des filtres de fichiers après les avoir activés. Pour plus de détails, voir Appliquer des filtres de fichiers.

5.1.2. Configuration des filtres de fichiers

Utilisez ces boutons pour gérer votre liste de Filtres de fichiers et en créer de nouveaux :

Tester

Sélectionnez un filtre de fichier dans la liste et cliquez sur Tester pour voir rapidement comment le filtre fonctionne. Voir Test des règles de filtrage de fichiers pour plus de détails.

Installer

Permet de localiser un filtre de fichier et de l'ajouter à la liste des filtres. Les filtres qui ne se trouvent ni dans le dossier partagé ni dans le dossier privé par défaut ne sont pas détectés à moins que vous ne les installiez.

Nouveau

Crée une nouvelle copie d'un modèle de fichier dans le dossier de filtres partagés ou privés, et l'ouvre dans votre éditeur par défaut. Modifiez le modèle et ajoutez vos règles, comme décrit dans Créer un filtre de fichier.

Modifier

Sélectionnez un filtre de fichier dans la liste et cliquez sur Modifier pour ouvrir le fichier dans votre éditeur par défaut.

Supprimer

Sélectionnez un filtre de fichier dans la liste et cliquez sur Supprimer pour supprimer le fichier et le retirer de la liste. Oui, le fichier est réellement supprimé !

Vos modifications sont enregistrées lorsque vous cliquez sur OK pour fermer la boîte de dialogue Filtres. Les filtres de lignes sont stockés dans le registre Windows.

5.1.3. Créer un filtre de fichier

Si les filtres installés avec WinMerge ne fournissent pas le filtrage dont vous avez besoin, vous pouvez créer les vôtres :

  1. Cliquez sur OutilsFiltres. Ou, depuis la boîte de dialogue Sélectionner des fichiers ou des dossiers, cliquez sur Sélectionner à droite du champ Filtre.

  2. Dans l'onglet Filtres de fichiers de la boîte de dialogue Filtres, cliquez sur Nouveau.

  3. Dans la boîte de dialogue Filtre partagé ou privé, choisissez Filtre partagé ou Filtre privé (voir Emplacements des filtres de fichiers pour leurs usages) et cliquez sur OK.

    La boîte de dialogue Sélectionner un nom de fichier pour le nouveau filtre s'ouvre dans le dossier des fichiers partagés ou privés de votre système (si le dossier privé n'existe pas, WinMerge le crée).

  4. Dans la boîte de dialogue Sélectionner un nom de fichier pour le nouveau filtre, saisissez un nouveau nom de fichier et cliquez sur Enregistrer.

    Note

    Ne choisissez pas un nom de fichier existant : pour modifier un fichier existant, revenez à l'étape 2 et cliquez sur Modifier au lieu de Nouveau.

    WinMerge initialise le nouveau fichier avec le contenu du modèle FileFilter.tmpl et l'ouvre dans votre éditeur de texte par défaut.

  5. Suivez les instructions du modèle pour l'éditer, en mettant à jour le nom et la description et en ajoutant des règles de filtrage comme décrit dans Syntaxe des filtres de fichiers. Enregistrez le fichier dans votre éditeur de texte.

    Tip

    Si vous souhaitez tester rapidement une règle que vous définissez, essayez de cliquer sur Tester dans la boîte de dialogue Filtres. Voir Test des règles de filtrage de fichiers pour plus de détails.

  6. Si vous avez créé votre filtre dans l'un des dossiers Filters standards et que la boîte de dialogue Filtres n'affiche pas votre nouveau filtre, essayez de cliquer sur OK pour la fermer, puis sur OutilsFiltres pour la rouvrir. La liste Filtres de fichiers devrait maintenant inclure le nouveau filtre.

    Si vous avez enregistré le fichier dans un autre emplacement sur votre système, WinMerge ne pourra pas le détecter à moins que vous ne l'installiez. Pour rendre un filtre de fichier détectable n'importe où sur votre système :

    1. Cliquez sur Installer dans la boîte de dialogue Filtres.

    2. Dans la boîte de dialogue Localiser le fichier de filtre à installer, naviguez jusqu'au fichier flt sur votre système et cliquez sur Ouvrir. La liste des filtres de fichiers devrait maintenant inclure le filtre installé.

5.1.4. Test des règles de filtrage de fichiers

Utilisez la boîte de dialogue Tester le filtre pour tester rapidement un filtre par rapport à des données d'exemple, afin de vous aider à développer de nouvelles règles ou à comprendre le fonctionnement des règles existantes. Cela peut être plus facile que de lancer une opération de comparaison complète.

À partir de la boîte de dialogue Filtres :

  1. Dans l'onglet Filtres de fichiers, choisissez le filtre que vous souhaitez tester.

  2. Si vous souhaitez voir les règles que vous allez tester, cliquez sur Modifier maintenant pour ouvrir le fichier afin de pouvoir le consulter pendant les étapes suivantes.

  3. Cliquez sur Tester.

  4. Dans la boîte de dialogue Tester le filtre, choisissez le type de règle à tester :

    • Pour tester une règle de fichier f: dans votre filtre, décochez l'option Nom du dossier.

    • Pour tester une règle de dossier d:, cochez l'option Nom du dossier.

  5. Saisissez le texte à tester.

    Le texte doit être approprié au type de règle que vous testez. Par exemple, si vous avez coché l'option Nom du dossier, vous voudrez probablement saisir un nom de dossier, tel que \temp.

    La zone Résultat affiche votre saisie, suivie de son état : soit réussi (passed), soit échoué (failed).

5.2. Utilisation de l'onglet Filtres de lignes

Utilisez cet onglet pour configurer et activer des filtres de lignes pour les opérations de comparaison de fichiers. L'onglet présente une liste de règles. Chaque règle contient une seule expression régulière. Vous pouvez appliquer n'importe quelle combinaison de règles de la liste à une comparaison de fichiers.

5.2.1. Configuration des filtres de lignes

Sous la liste Expressions régulières se trouvent une zone d'édition et des boutons que vous pouvez utiliser pour mettre à jour la liste à tout moment en ajoutant, modifiant et supprimant des règles.

Pour ajouter une nouvelle règle :

  1. Cliquez sur Nouveau. Votre curseur d'édition est automatiquement activé dans la zone d'édition.

  2. Saisissez une expression dans la zone d'édition sous la liste Expressions régulières.

  3. Cliquez sur Enregistrer pour charger l'expression dans une nouvelle ligne de la liste.

Pour modifier une règle existante :

  1. Sélectionnez la ligne et cliquez sur Modifier.

  2. Modifiez l'expression dans la zone d'édition.

  3. Cliquez sur Enregistrer quand vous avez terminé.

Pour supprimer une règle existante, sélectionnez (cochez) la règle et cliquez sur Supprimer.

5.2.2. Activation et désactivation des filtres de lignes

  1. Dans la liste Expressions régulières, cochez uniquement les filtres que vous souhaitez appliquer, et décochez tous les filtres que vous ne souhaitez pas appliquer.

  2. Cochez ou décochez l'option Activer les filtres de lignes. Si vous activez le filtrage, toutes les règles actuellement cochées dans la liste Expressions régulières seront utilisées. Si le filtrage est désactivé, aucune règle n'est utilisée, même si elle est cochée.

  3. Cliquez sur OK pour fermer la boîte de dialogue Filtres et enregistrer vos réglages.

Il existe plusieurs façons d'appliquer des filtres de fichiers après les avoir activés. Pour plus de détails, voir Application des filtres de lignes.

5.3. Utilisation de l'onglet Filtres de substitution

À déterminer

5.3.1. Configuration des filtres de substitution

À déterminer

5.3.2. Activation et désactivation des filtres de substitution

À déterminer

6. Obtenir de l'aide sur les expressions régulières

Les expressions régulières peuvent être très complexes. Heureusement, la plupart des filtres de fichiers dans WinMerge utilisent des expressions d'extension simples, comme le montrent les exemples de cette rubrique. Les fichiers de filtres installés avec WinMerge comprennent de nombreux autres exemples utiles.

Enfin, il existe de nombreuses ressources sur le Web pour vous aider avec les regex, notamment ces sites :