Thread Regex über mehrere Zeilen (10 answers)
Opened by kameltreiber at 2012-01-18 11:26

GUIfreund
 2012-01-19 14:32
#155547 #155547
User since
2011-08-08
559 Artikel
BenutzerIn
[default_avatar]
Code (perl): (dl )
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
use strict;
use warnings;

undef $/;   # gesamte Datei lesen
my $rohdaten = <DATA>;
$rohdaten =~ s/\n/ /g;

while ($rohdaten =~ m/(.+? St \.{10,} + \.{10,})/sg) {
    print "$1\n";
}
__DATA__
Eingänge, 12 Bit, 0(4) 
...20mA (Stecker Typ E), 
gemäss Leistungsbeschrieb
ATS 03, komplett betriebsbereit,
verdrahtet inkl. Klemmen
31 158    St ......................     .....................
R  912.553.124     Analoges Ausgangsmodul mit 
galvanischer Trennung, 4 
Ausgänge, 10 Bit, 0(4) ... 
20mA (Stecker Typ E), 
gemäss Leistungsbeschrieb
ATS 03, komplett betriebsbereit,
verdrahtet inkl. Klemmen
31 84    St ......................     .....................
R  912.553.125     DALI Modul
gemäss Leistungsbeschrieb
ATS 03, komplett betriebsbereit,
verdrahtet inkl. Klemmen 31 160    St ......................     .....................

Ergebnis:
Quote
Eingänge, 12 Bit, 0(4) ...20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 158 St ...................... .....................
R 912.553.124 Analoges Ausgangsmodul mit galvanischer Trennung, 4 Ausgänge, 10 Bit, 0(4) ... 20mA (Stecker Typ E), gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 84 St ...................... .....................
R 912.553.125 DALI Modul gemäss Leistungsbeschrieb ATS 03, komplett betriebsbereit, verdrahtet inkl. Klemmen 31 160 St ...................... .....................

Das Skript liest am Anfang alle Daten ein. Die Datei sollte also nicht zu groß sein.

Das 10, rührt daher, dass ich zu faul war, die Punkte zu zählen. Das hat andererseits den Vorteil, dass deren Anzahl doch nicht so ganz konstant sein muss.

In der Vorschau sind im Quoteblock alle Sequenzen von Leerzeichen zu einem einzigen Leerzeichen geschrumpft, außerdem wurden die Zeilen umbrochen. Hoffentlich ist das nach dem Absenden wieder ok.
Gruß
GUIfreund

View full thread Regex über mehrere Zeilen