2017-06-13 3 views
0

J'utilise un programme appelé TextCrawler Pro qui me permet de fonctionner comme une macro.Supprimer tout le texte sur une ligne après que le texte spécifié est trouvé

Je voudrais nettoyer une page météo sur une base quotidienne pour aller de ceci:

Billings, MT;93;62;80;53;Not as warm;NNE;10;44%;20%;8 

Birmingham, AL;80;70;81;69;Thunderstorms;SSW;6;81%;90%;4 

Bismarck, ND;92;57;92;63;Mostly sunny;SE;12;46%;36%;8 

Boise, ID;85;51;77;49;Mostly sunny, nice;N;8;36%;0%;8 

à ceci:

Billings, MT;93;62;80;53; 

Birmingham, AL;80;70;81;69; 

Bismarck, ND;92;57;92;63; 

Boise, ID;85;51;77;49; 

je peux trouver en utilisant \;\d+\;\d+\;\d+\;\d+\; mais je ne peux pas supprimer à la fin de la ligne.

J'ai essayé d'ajouter \r\n à la fin de ce qui précède comme ceci: \;\d+\;\d+\;\d+\;\d+\;\r\n

mais qui remplace toutes mes informations de la ville avec le code regex.

Des idées? J'ai l'impression qu'il me manque quelque chose de très simple.

+0

'couper -d \; -f1-5 < input.txt > output.txt' devrait faire le travail ... Pas de raison de compliquer les choses avec regexes ... – twalberg

+0

merci, c'est sur un serveur Windows mais pas sûr de savoir comment l'exécuter? – schnarkle

+0

Dans quelle langue faites-vous cela? –

Répondre

0
(.*\,\s[A-Z]+;\d{2};\d{2};\d{2};\d{2};)(.+) 

Le premier groupe est ce que vous cherchez, ignorez le second. See it here

+0

Génial alors comment pourrais-je supprimer le groupe 2 du texte? – schnarkle

0

Il y aura beaucoup, beaucoup de modèles différents qui réussiront à supprimer les sous-chaînes indésirables pour vous. En voici quelques-uns que j'ai cuisinés. (Demo)

67 étapes ^([^;]+;[^;]+;[^;]+;[^;]+;[^;]+;).*$ motif #most efficace dans ma liste

91 étapes ^((?:[^;]+;){5}).*$

127 étapes (.+?;.+?;.+?;.+?;.+?;).*

157 étapes ((?:.+?;){5}).*

163 étapes (.+?;)[^\d].*

185 étapes (.+\d{2};)[A-Z].*

280 étapes (.*\,\s[A-Z]+;\d{2};\d{2};\d{2};\d{2};)(.+)

La façon dont vous retirez la partie non souhaitée, est en remplaçant la ligne complète avec juste la partie voulue.

Référencer ces pages de document:

https://www.digitalvolcano.co.uk/textcrawlermanual/regular_expression_reference_guide.htm

https://www.digitalvolcano.co.uk/textcrawlermanual/regular_expression_find_replace.htm

Vous devriez être en mesure d'utiliser simplement $1 comme la valeur de remplacement et tout sera nettoyé.