RegEx et Notepad++ [Résolu] - Divers - Programmation
Marsh Posté le 25-07-2022 à 09:10:38
^PHOTO.*Jggg==$
Mais je vois pas pk tu utilises notepad++ pour ça
Marsh Posté le 25-07-2022 à 10:26:19
J’imagine qu'il fait une regex dans le rechercher remplacer de Notepad++.
Je t'ai fait un exemple ici :
https://regex101.com/r/nDg0JM/1
REGEX :
Code :
|
AVANT :
Code :
|
APRES :
Code :
|
J'ai mis un \n à la fin de ton expression régulière pour capturer le saut de ligne (sinon tu auras des lignes vide) mais suivant comment ton saut de ligne est encodé il se peut qu'il faille plutôt mettre un \r ou même un \r\n...
Marsh Posté le 25-07-2022 à 19:23:29
Bonjour.
Quelle rapidité ! Bravo !
Je n'avais pas compris qu'il fallait juste concaténer les éléments d'une RegEx.
Je croyais qu'il fallait les séparer avec un espace ou un +
Oui en effet j'utilise Notepad++ pour chercher et remplacer et surtout supprimer dans le cas présent.
Hélas vos propositions ne fonctionnent pas dans Notepad++
En fait j'ai plutôt un truc de ce genre
Code :
|
(Répétez le motif Ad Noseam)
Et je désire juste :
Code :
|
J'ai essayé vos propositions mais je crois que les sauts de lignes bloquent.
J'ai testé ceci :
Code :
|
Mais rien ne fonctionne.
J'arrive a trouver et sélectionner les lignes
PHOTO:TYPE=JPEG;ENCODING=BASE64:iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXH
J'arrive a trouver les lignes
c4Bg21nZeXZ8bTvfwG5FQwXjcepFwAAAABJRU5ErkJggg==
Mais pas les lignes entre les deux.
Marsh Posté le 25-07-2022 à 21:32:35
Finalement j'ai trouvé un contournement.
J'ai remarqué que dans ce que je voulais supprimer il y avait plusieurs schémas. Et que plutôt que de faire une RegEx complique en faire 3 plus simple serait plus facile.
1ere :
^PHOTO:.*
2ieme :
.*Jggg==$
3ieme :
^ .*
Car toutes les lignes que je veux retirer commencent par un espace.
Je remplace tout ce qui est trouvé par "rien" pour avoir des lignes vides.
Puis un rechercher/remplacer des lignes vides.
Et voilà !
Merci pour votre aide
Marsh Posté le 25-07-2022 à 22:00:45
Utilises le site que j'ai mis en lien pour mettre un copier coller de ton fichier, on vas bien réussir à te pondre une regex...
Après je n'ai pas Notepad++, je ne sais pas trop ce qui est compatible ou non mais on devrai trouver.
Y'a aussi moyen de faire une première REGEX sans les sauts de ligne puis une 2eme pour capturer les doubles saut de ligne pour les transformer en simple, c'est de la bidouille mais bon...
EDIT: tant mieux si tu as trouvé une solution !
Marsh Posté le 30-07-2022 à 10:00:28
Dans notepad++ ceci fait le boulot :
Remplacer le \r\n par la fin de ligne appropriée à ton OS, ici c'est pour DOS/WINDOWS.
J'ai juste supposé que ton fichier se termine par une ligne vide, ce qui est en principe le cas pour les fichiers texte.
Si ce n'est pas le cas, et que ton fichier se termine avec une zone à supprimer, cette dernière ne le sera pas, et tu devras la sucrer manuellement.
L'option boucler est mise automatiquement, ou bien elle est par défaut chez moi depuis un bail, j'y ai pas touché, mais je ne suis pas sur qu'elle serve ici, si tu choisis remplacer tout. J'ai appliqué le principe "If it aien't broke, don't fix it!"
A+,
Marsh Posté le 02-01-2023 à 21:12:24
Hello, je profite du topic.. ^^ Je souhaite tracer mes dépenses sur un fichier texte ou je les notes. Elles apparaisent sous le format -xxx,xx€( avec plus ou moins de x selon si c'est centaines, milliers, ou juste dizaines d'euros). Le signe € est bien a prendre en compte car dans ce fichier texte peut aussi apparaitre des numéros de commandes et autres.. Quelle serait l'expression qui conviendrait? Dites moi si je dois faire un autre topic Merci d'avance.
Marsh Posté le 03-01-2023 à 10:01:17
ddong a écrit : Hello, je profite du topic.. ^^ Je souhaite tracer mes dépenses sur un fichier texte ou je les notes. Elles apparaisent sous le format -xxx,xx€( avec plus ou moins de x selon si c'est centaines, milliers, ou juste dizaines d'euros). Le signe € est bien a prendre en compte car dans ce fichier texte peut aussi apparaitre des numéros de commandes et autres.. Quelle serait l'expression qui conviendrait? Dites moi si je dois faire un autre topic Merci d'avance. |
T'as pas dit ce que tu cherches à faire ni ce qu'il y aurait d'autre sur les mêmes lignes .
Fournir un exemple de fichier aidera probablement.
Mais pour matcher un montant en € (et rien d'autre !) sur une ligne donnée tu peux utiliser par exemple :
^-\d{1,5},\d{2}€$ |
Si tu veux que ça marche aussi avec d'autres choses sur la même ligne tu peux enlever le "^" et le "$" qui veulent dire respectivement début et fin de ligne.
Marsh Posté le 24-07-2022 à 23:50:34
Bonjour.
Je ne suis pas du tout programmeur.
Mais j'ai appris qu'une expression régulière pourrait m'aider dans ce que je cherche à faire.
J'ai un gros fichier texte de 5/6Mio (un fichier contact CSV).
Et dedans je dois supprimer des morceaux.
Ces morceaux sont sur plusieurs lignes et différents.
Mais ils ont quand même un point commun : ils commencent par "PHOTO" en début de ligne et finissent par "Jggg==" en fin de ligne.
J'arrive a trouver le début de la RegEx : ^PHOTO
Et la fin de la RegEx : Jggg==$
Mais je ne parviens pas à les combiner pour avoir "début" + "n'importe quoi" + "fin"
Pour le "n'importe quoi" j'ai essayé ".*" ou "(.*)" ou "[.*]" ou "*" ou "." ou d'autres combinaisons de () de [] de . de *
Mais je ne trouve pas.
On peux m'expliquer ?
Merci.
Message édité par LimDul le 25-07-2022 à 21:32:54
---------------
Liberkey, colection d'utilitaires sur clef USB / Silverstone DS380 - Mini tour ITX 8 baies Hot-swap 3.5"