Boulanza a écrit : ↑lun. 08 mars 2021 14:39
Bonjour,
$var = "$TOTO"
Pour que la solution de mikell marche sans problème "$TOTO" il suffi juste de supprimer le premier \b soit donc:
$resultat1 =StringRegExpReplace($file,'(?m)^.*?\Q' & $var1 & '\E\b.*$\R?', "", "")
Ceci marche aussi parfaitement sans souci.
$resultat1 = StringRegExpReplace($file, '(?m).*?((\V*\v+)?\V*\Q' & $var1 & '\E\V*(\v+\V*)?).*', "")
Cordialement.
RegEx 1. Non, car cela va aussi ramasser un mot qui finit par $TOTO (ex: PAS$TOTO).
Il faut alors faire un "ou" 'commence par' ou 'milieu', style:
(pas testé tous les cas possibles)
\b devant $ ne fonctionne pas car il n'est valable que si la lettre du "mot" à côté est une lettre, un chiffre ou un underscore
RegEx 2. Mais pourquoi utiliser un tabulateur vertical ?
Cela dit, si l'expression à trouver est un texte fixe ($TOTO) il est plus simple d'utiliser StringInStr...
- Tant que marqueur EOF du fichier source non trouvé
- Lire une ligne du fichier d'entrée
- Chercher si la chaine y est
- Si non, écrire la ligne dans le fichier de sortie
- Boucler