Supprimer tout le texte apres un caractère définis

- - Dernière réponse : [Dal]
Messages postés
5216
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
19 septembre 2019
- 4 sept. 2019 à 09:44
Bonjour,


J'ai un document de plusieurs centaines de lignes du type xxx:yyy | AAA (avec des retours a la ligne a chaque fois)
je souhaiterai supprimer le caractère "I" et le texte qui suit ce caractère sur l'ensemble du document.

Merci de m'aider!
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
5216
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
19 septembre 2019
801
1
Merci
Salut goualman,

Tu peux utiliser n''importe quel éditeur qui supporte les expressions régulières (regexp) et lui demander de chercher
\s+\|\s+.*$
et le remplacer par du vide.

Tu peux voir cette regexp en action là : https://regex101.com/r/vZaC37/1

où tu vois qu'elle remplace :

xxx:yyy | AAA GJGJDJG JHGJGJGJ
xxx:yyy | AAA KJHKHDKJHK JKHKJHD
xxx:yyy | AAA KKJHDJKHKJKF 
xxx:yyy | AAA KJHKDHKDFKJDHKJHK

par :
xxx:yyy
xxx:yyy
xxx:yyy
xxx:yyy


Cette regexp recherche un ou plusieurs espaces suivis d'un caractère pipe (la barre verticale | produite par AltGr-6 sur nos claviers français) suivi d'un ou plusieurs espaces, suivis de n'importe quoi jusqu'à la fin de la ligne. Elle fonctionne donc à condition qu'il n'y ait qu'un seul caractère pipe entouré d'espace(s) avant ou après ce caractère sur chaque ligne et ne contrôle pas le format de ce qu'il y a avant le caractère pipe et le ou les espace(s) qui le précède(nt) immédiatement.

Notepad++, gvim, peuvent faire cela, etc.

Tu peux aussi juste utiliser le lien https://regex101.com/r/vZaC37/1 copier tes centaines de lignes dans la partie supérieure à la place de mes données de test, et récupérer le résultat dans la partie inférieure sans avoir à installer un de ces éditeurs de texte ni apprendre à t'en servir.

Cependant, je ne peux que te recommander d'apprendre à de servir de ces outils et des regexp.

Dal

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 60292 internautes nous ont dit merci ce mois-ci

bonjour,

Cela fonctionne parfaitement!!!!! Merci beaucoup pour le temps que vous avez pris pour m'aider! :)
bonjour,

Cela fonctionne parfaitement!!!!! Merci beaucoup pour le temps que vous avez pris pour m'aider! :)

Je viens de me rendre compte que certaines lignes présentes plusieurs caractères pipes, comment faire pour que l'ensemble du texte qui précede le 1er cacatere pipe soit effacé? (ou ne conserver que la 1ere partie avant le caracyere pipe)

ex:
xxx:yyy | AAA | GJGJDJG | JHGJGJGJ
en
xxx:yyy

merci d'avance!
[Dal]
Messages postés
5216
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
19 septembre 2019
801 -
De rien, content que cela te serve.

En fait, s'il n'y a pas de caractère pipe dans la partie que tu veux garder "xxx:yyy", le fait qu'il y ait plusieurs caractères pipe dans le reste n'est pas problématique, car la regexp "consomme" la totalité de la ligne dès qu'elle rencontre le premier pipe entouré d'un ou plusieurs espaces. Tout le reste jusqu'à la fin de la ligne est couvert par la regexp.

Tu peux voir un exemple avec la même regexp
\s+\|\s+.*$
là :

https://regex101.com/r/vZaC37/2

où :

xxx:yyy | AAA GJGJDJG JHGJGJGJ
xxx:yyy | AAA KJHKHDKJHK JKHKJHD
xxx:yyy | AAA KKJHDJKHKJKF 
xxx:yyy | AAA | GJGJDJG | JHGJGJGJ 
xxx:yyy | AAA KJHKDHKDFKJDHKJHK

donne bien :

xxx:yyy
xxx:yyy
xxx:yyy
xxx:yyy
xxx:yyy


Si tu as un ou plusieurs caractères pipe entouré(s) d'un ou plusieurs espaces dans la partie que tu veux garder, il nous faut plus d'informations sur ce qui s'y trouve pour les distinguer et faire une regexp adaptée matchant cette première partie que tu veux garder intacte.
Commenter la réponse de [Dal]
Messages postés
8539
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 septembre 2019
424
0
Merci
bonjour, peux-tu nous en dire plus?
s'agit-il d'un document électronique?
Commenter la réponse de yg_be
0
Merci
il s'agit d'un document texte
yg_be
Messages postés
8539
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 septembre 2019
424 -
sur un ordinateur utilisant quel logiciel? quelles sont tes connaissances en programmation? de quels outils disposes-tu? n'hésite pas à donner quelques informations.
ce document se trouve sur le bloc note tout simplement, mais je possède la pack office ( word exel ) je n'ai que tres peut de notion en programmation.

Je ne sais pas quel outil est le plus simple pour réaliser cela..
Commenter la réponse de goualman