Gentoo Archives: gentoo-user-hu

From: Botykai Zsolt <zsolt.botykai@××××××.hu>
To: gentoo-user-hu@l.g.o
Subject: Re: [gentoo-user-hu] python programozas regexp-pel
Date: Fri, 24 Sep 2004 14:01:00
Message-Id: 200409241600.55696.zsolt.botykai@online.hu
In Reply to: [gentoo-user-hu] python programozas regexp-pel by Botykai Zsolt
1 csütörtök 23 szeptember 2004 16:18 dátummal Botykai Zsolt ezt írta:
2 > Sziasztok, az alábbi problémám van:
3 > van egy csomó text file-om amiben hasznos szöveg van kb az alábbi
4 > eloszlásban:
5 >
6 > <haszontalan szöveg>
7 > <határoló>
8 > <egy vagy fölös üres (maximum space-t vagy tab-ot tartalmazó sor)>
9 > <hasznos szöveg>
10 > <egy vagy fölös üres (maximum space-t vagy tab-ot tartalmazó sor)>
11 > <hasznos szöveg>
12 > <egy vagy fölös üres (maximum space-t vagy tab-ot tartalmazó sor)>
13 > <hasznos szöveg>
14 > <egy vagy fölös üres (maximum space-t vagy tab-ot tartalmazó sor)>
15 > <határoló>
16 > <haszontalan szöveg>
17 >
18 > ezzel a scripttel "gyönyörűen" kinyerem a <határoló>-k közötti részt.
19 > csakhogy ki szeretném vágni belőle a <egy vagy fölös üres (maximum space-t
20 > vagy tab-ot tartalmazó) sor>-t is...
21 > vmi ötlet?
22 >
23 > import sys
24 > import re
25 > data = sys.stdin.read()
26 > match_body = re.compile(
27 >         r"""--==--.+--==--""",
28 >         re.DOTALL |
29 >         re.MULTILINE |
30 >         re.VERBOSE)
31 > f_body = match_body.search(data)
32 > o_output = f_body.group() + "\n"
33 > sys.stdout.write(o_output)
34 >
35 > Zsoltik@
36 >
37
38 Python megoldás:
39 match_body = re.compile(
40 r"""--==--==--==--==--.(.+.--==--==--==--==--\n)""",
41 re.DOTALL |
42 re.MULTILINE |
43 re.VERBOSE)
44 rm_els = re.compile(r'(^|\n)\s*(\n|$)')
45 f_body = match_body.search(data)
46 o_output = f_body.group(1) + "\n"
47 o_output = rm_els.sub(r'\1', o_output)
48
49 Kössz az ötleteket is.
50 Zsoltik@
51
52 --------------------------------------------------------------------------
53
54 Opinions, conclusions and other information in this message that do not
55 relate to the official business of Online Business Technologies Corp.
56 shall be understood as neither given nor endorsed by it. In such cases
57 Online Business Technologies Corp. will not bear the responsibility of
58 consequences.
59 If you have received this communication in error, please notify the
60 system manager immediately by responding to this email and then delete
61 it from your system.
62
63
64 A levelben foglalt, nem az Online Rt. hivatalos uzletmenetevel kapcsolatos
65 velemenyek vagy mas informaciok vonatkozasaban az Online Rt. nem vallal
66 felelosseget.
67 Amennyiben a level valamely hiba folytan jutott Onhoz, kerjuk, hogy
68 valaszlevelben azonnal ertesitse a rendszer uzemeltetojet, majd torolje ki
69 a levelet rendszerebol!