Bonjour,

Mon objectif est d'extraire une partie d'une chaine de caractère. Le texte est de cette forme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
du texte avec toute les possibilités.
 
key_1: value_1 value2...
          value3
key_2: value 2 value 22....
du texte qui peut rassembler a tout...
Mon but est d'extraire le key 1 avec tous ses valeurs (qui peuvent être sur la même ligne ou sur plusieurs lignes. Lé délimiteur n'est qu'une autre ligne avec également un nouveau key_value ou saut de ligne.

J'ai essayé avec pyparsin en utilisant le code suivant mais en vain:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
from pyparsing import *
key_name = Word(alphanums+'_')
key_ending =  ZeroOrMore(' ') +':'
key = key_name + key_ending
value = Word(alphanums) + NotAny(key_ending)
values = OneOrMore(value)
param = Group(key + values)
param_stream = OneOrMore(param)
for param in r.asList():
    param[0], param[2:]
et voilà un exemple de text d'entrée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 
From: Blabla bhlkf <Blabla.bhlkf@atghg.tele2.com>
Sent: 2014-01-22 14:21:31
To: "support@atghg.com" <support@atghg.com>
Subject: Blablablabla bla bla Subject
Case request:                           STL Cas Hours (JKLM, KJH 1 24x7 EPLi
Loc)
Request Type:                           Support (HTL)
Product:                                TGHLKI HS+ / BLOS V. 9.9.x.x
Product Instance State:                 In Service
DSLAM address:                  HGJLKM
Problem Description:                    All usershoud be in nkowns
                               that the first line should be also extracted
Ticket Priority:                                3 = Very import request
Contact Name:                           Blabla
Contact phone:                          +0187 87652 99883 
Alternate phone:                        +012 7890 877343 1 9009 35
Tele2UTA Ticket ID:                     HGFDL5666
Service Agreement:                      7543864
Contact Company:                        FAX2
xlfswott01> users -l | grep 001.14.06
616804042  001.14.060/0001 001:14:060/ 2044K/ 252K ATM 0.0.0.0      
1:14:60-0.100-T-066048   0:07:31    0:00:00
616804043  001.14.060/0001 001:14:060/ 2044K/ 252K ATM 0.0.0.0      
1:14:60-8.35-T-066048    0:07:32    0:00:00
616804044  001.14.060/0001 001:14:060/ 2044K/ 252K ATM 0.0.0.0      
1:14:60-8.40-T-066048    0:07:32    0:00:00
616804054  001.14.064/0001 001:14:064/ 2044K/ 252K ATM 0.0.0.0      
1:14:64-0.100-T-066050   0:07:20    0:00:00
616804055  001.14.064/0001 001:14:064/ 2044K/ 252K ATM 0.0.0.0      
1:14:64-8.35-T-066050    0:07:20    0:00:00
616804056  001.14.064/0001 001:14:064/ 2044K/ 252K ATM 0.0.0.0      
1:14:64-8.40-T-066050    0:07:21    0:00:00
616804057  001.14.065/0001 001:14:065/ 2044K/ 252K ATM 0.0.0.0      
1:14:65-0.100-T-067398   0:07:22    0:00:00
616804058  001.14.065/0001 001:14:065/ 2044K/ 252K ATM 0.0.0.0      
1:14:65-8.35-T-067398    0:07:25    0:00:00
616804059  001.14.065/0001 001:14:065/ 2044K/ 252K ATM 0.0.0.0      
1:14:65-8.40-T-067398    0:07:26    0:00:00
<end user list>  3053 active user(s)
<grep> Found 9 line(s) matching search criteria
xlfswott01> users -l | grep 001.14.05
616804031  001.14.054/0001 001:14:054/ 6997K/ 903K ATM 0.0.0.0      
1:14:54-0.100-T-004048   0:08:14    0:00:00
616804032  001.14.054/0001 001:14:054/ 6997K/ 903K ATM 0.0.0.0      
1:14:54-8.35-T-004048    0:08:15    0:00:00
616804033  001.14.054/0001 001:14:054/ 6997K/ 903K ATM 0.0.0.0      
1:14:54-8.40-T-004048    0:08:16    0:00:00616804034  001.14.055/0001
001:14:055/ 7997K/ 903K ATM 0.0.0.0         1:14:55-0.100-T-065997   0:08:17   
0:00:00
616804035  001.14.055/0001 001:14:055/ 7997K/ 903K ATM 0.0.0.0       
1:14:55-8.35-T-065997    0:08:17    0:00:00
616804036  001.14.055/0001 001:14:055/ 7997K/ 903K ATM 0.0.0.0      
1:14:55-8.40-T-065997    0:08:20    0:00:00
616804037  001.14.057/0001 001:14:057/ 2044K/ 252K ATM 0.0.0.0      
1:14:57-0.100-T-071069   0:08:20    0:00:00
616804038  001.14.057/0001 001:14:057/ 2044K/ 252K ATM 0.0.0.0      
1:14:57-8.35-T-071069    0:08:22    0:00:00
616804039  001.14.057/0001 001:14:057/ 2044K/ 252K ATM 0.0.0.0      
1:14:57-8.40-T-071069    0:08:23    0:00:00
616804040  001.14.059/0001 001:14:059/ 2044K/ 252K ATM 0.0.0.0      
1:14:59-0.100-T-155435   0:08:23    0:00:00
616804041  001.14.059/0001 001:14:059/ 2044K/ 252K ATM 0.0.0.0      
1:14:59-8.40-T-155435    0:08:24    0:00:00
616804048  001.14.050/0001 001:14:050/ 2044K/ 252K ATM 0.0.0.0      
1:14:50-0.100-T-064163   0:08:09    0:00:00
616804049  001.14.050/0001 001:14:050/ 2044K/ 252K ATM 0.0.0.0      
1:14:50-8.35-T-064163    0:08:08    0:00:00
616804050  001.14.050/0001 001:14:050/ 2044K/ 252K ATM 0.0.0.0      
1:14:50-8.40-T-064163    0:08:10    0:00:00
616804051  001.14.051/0001 001:14:051/   13M/1047K ATM 0.0.0.0      
1:14:51-0.100-T-080123   0:08:10    0:00:00
616804052  001.14.051/0001 001:14:051/   13M/1047K ATM 0.0.0.0      
1:14:51-8.35-T-080123    0:08:10    0:00:00
616804053  001.14.051/0001 001:14:051/   13M/1047K ATM 0.0.0.0      
1:14:51-8.40-T-080123    0:08:13    0:00:00
<end user list>  3050 active user(s)
mit HFDSKJKJR LIKLSS
BLAB HGFDO
COMPANY Telecom
DESEARCH DEVELOPEMENT Network Operation Center (NOC)
Donau-City-Strasse 11, 1220 Wien
service@atgljkfyh.com
******** WICHTIGER HINWEIS ********
balblablablbalbalnbabTele2bmlablablalablaba.
blablablablaba.
******** IMPORTANT NOTICE ********
blablablbalbablabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.
lablablbalablblb.
ou je dois extraire l'élément "Problem Description: " avec son valeur qui s'étale ici sur deux lignes.

Je vous remercie d'avance pour vos réactions.