Thread Textstring richtig zerlegen? (12 answers)
Opened by kami at 2012-06-12 12:07

Linuxer
 2012-06-12 17:45
#158919 #158919
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Oder hier ein anderer Ansatz, der einfach mehrmals den Text nach einem neuen Pattern absucht.

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
30
31
32
#! /usr/bin/perl
use strict;
use warnings;


while ( my $line = <DATA> ) {
    # Vorbelegung mit 0
    my %data = (
        "Tage"  => 0,
        "Std."  => 0,
        "Min."  => 0,
    );

    # Jedes vorbelegte Element wird nun einzeln geprüft
    for my $item ( keys %data ) {
        # der Key wird hierbei als Textelement im Pattern verwendet
        if ( $line =~ m{(\d+) \Q$item\E} ) {
            $data{$item} = $1;
        }
    }

    # "formatierte" Kontrollausgabe
    printf "%2d D, %2d h, %2d m\n", @data{qw( Tage Std. Min. )};

}

__DATA__
3 Tage 12 Std. 3 Min.
2 Std. 4 Min.
2 Min.
7 Min. 8 Std. 9 Tage
~


Resultat hier:
Code: (dl )
1
2
3
4
5
 3 D, 12 h,  3 m
0 D, 2 h, 4 m
0 D, 0 h, 2 m
9 D, 8 h, 7 m
0 D, 0 h, 0 m
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Textstring richtig zerlegen?