Aide Regexp

Fermé
EminoMeneko Messages postés 2434 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 - 9 sept. 2011 à 20:19
Bonjour,

j'aurais besoin d'aide pour mettre en oeuvre le traitement d'un texte qui m'intéresse.

Le fichier se présente sous cette forme là :
Titre 1
Titre 1

Description 1
Entier

Titre 2
Titre 2

Description 2
Entier

Titre 3
Titre 3

Description 3
Entier

...


Exemple plus concret :
Salut les gens
Salut les gens

Je vous dis bien le bonjour
24

Comment ça va ?
Comment ça va ?

J'espère que vous aller bien.
42

...


Ce que je cherche à obtenir est quelque chose dans ce genre
Titre 1 Description 1 Entier
Titre 2 Description 2 Entier
Titre 3 Description 3 Entier
...


avec pour séparateur le caractère de tabulation.

J'utilise dnGREP qui d'après son document d'aide utilise l'implémentation de RegExp Microsoft.

Pour ce qui est de la manière de procéder j'ai plusieurs idées en tête mais j'ai du mal à les traduire en regexp.

1ère idée
Supprimer une ligne vide sur deux
Remplacer le retour à la ligne des lignes non vides par un tab

2ème idée
Supprimer toutes les lignes vides (remplacer ^$ par rien)
Utiliser la valeur entière comme une sorte de marqueur de fin de bloc.
Comme pour dire "traites toutes les lignes jusqu'au prochain nombre inclus, reformates comme prévu et traite le prochain bloc de lignes"

3ème idée
Ajouter un caractère particulier après l'entier pour s'en servir comme délimiteur de bloc de lignes.
En principe on devrait pouvoir traiter les saut de lignes malgré tout.

Je sais qu'avec sed c'est faisable même si je ne vois pas trop la ligne mais je cherche à faire ça avec le logiciel cité plus haut et en tout cas sous Windows.

Si vous connaissez un moyen d'obtenir ça avec un autre logiciel n'hésitez pas à condition que ce soit avec un logiciel déjà implémenté dans Windows (WSH, PowerShell, etc...) ou un langage standard du web comme JavaScript ou encore une appli portable (en archive). Sinon j'ai encore Python sur Windows si vous avez une proposition à faire.

Merci d'avance. ;)