Nouvelle syntaxe de l’opérateur NON

A partir de la version 3.1 de Search and Replace, la syntaxe de l’opérateur NON des expressions régulières a été modifiée pour améliorer son utilisation. La nouvelle syntaxe se veut plus explicite et plus simple d’emploi.

Les utilisateurs des versions précédentes doivent impérativement se familiariser avec la nouvelle syntaxe car l’ancienne syntaxe ne fonctionne plus ! De plus, il pourra être nécessaire de modifier les anciens scripts qui en faisaient usage.

La syntaxe de l’opérateur NON (symbolisé par le caractère !) nécessite maintenant de préciser à la fois la forme générique des éléments à chercher et ceux à ne pas trouver. Ceci pourrait s’apparenter à une formulation du type “trouver quelque chose sauf les éléments spécifiés par l’opérateur !

Par exemple: l’ancienne syntaxe pour rechercher “mat”, “rat” ou “sat” mais pas “bat” ni “cat” était “!(b|c)at” (sans les guillemets). La nouvelle syntaxe correspondante sera “?at!((b|c)at)” (sans les guillemets) signifiant “chercher une chaîne se terminant par “at” mais pas par “bat” ni “cat”.

Voici un autre exemple :

Disque dur, XXL $3,485.00

Disque dur, MXL $1,295.00

Disque dur, MX $995.00

Kit de montage $210.00

Si vous souhaitez rechercher le caractère “,” (séparateur de milliers dans les chiffres) vous utiliserez par exemple : “,?!(, )” signifiant rechercher une chaîne commençant par une virgule suivi d’un caractère quelconque (?) mais ne formant pas une séquence composée d’une virgule suivi d’un espace.

Voir la rubrique ! – Opérateur NON pour plus d’exemples.

 

Notes:

  • Dans la plupart des cas, il est nécessaire d’utiliser un caractère joker pour représenter la partie positive de l’expression (celle qui précède le !). Dans l’exemple précédent, le ? (correspondant à un et un seul caractère quelconque) est nécessaire.

  • La partie négative de l’expression doit être incluse entre () ou entre []. Cette partie peut elle-même être constituée par une expression complexe.

  • La séquence “!()” peut être utilisé comme une sorte d’opérateur ET : suivi d’une expression, elle permettra de trouver les chaînes répondant à la première partie de l’expression ET répondant aux critères de la seconde partie de l’expression. Par exemple, l’expression suivante est valable : “Veuillez *!()(directeur|président)”. Cette expression permettra notamment de trouver toutes les phrases (formules de politesses) commençant par “Veuillez” et contenant le mot directeur ou président.

  • Lorsque l’on utilise l’opérateur ! avec remplacement, le champ “remplacer par” doit contenir une expression sous une forme littérale : les caractères jokers tels que * ou ? utilisés dans le champ “rechercher” devront être remplacés par %1 (voire %2, %3…en respectant le nombre et la position des caractères jokers) et les chaînes devront être rappelées dans le champ “remplacer par”.
    Exemple : Voici un exemple dans lequel nous souhaitons ajouter des guillemets autour de tous les mots commençant par vol (sauf pour les mots volant et voltige) :

    • Rechercher :

    • Remplacer par :

    • Commentaire

    • vol*[] !((voltige|volant))

    • “vol%1″

    • Champ Rechercher : rechercher un mot commençant par vol mais différent de voltige et volant

    • Champ Remplacer par : ajouter un guillemet avant le début du mot, puis un autre à la fin du mot. Ainsi, vol, vols, volés deviendront respectivement “vol”, “vols” et “volés”.

    • Les éléments situés après l’opérateur ! ne peuvent pas être adressés avec les opérateurs %n.

Nouvelle syntaxe de l’opérateur NON