7 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
schluesselwort schluesselwert {
option1 wert1;
option2 wert2;
muell;
}
schluesselwort andererschluesselwert {
option1 wert1;
option2 wert2;
anderermuell;
option3 "wert3";
}
schluesselwort nocheinandererschluesselwert {
option1 wert1;
option2 wert2;
muell;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
while (
$content =~ /
schluesselwort\s
(\w+?)
\s\{
\s*?
option1\s\d*?\s
(\w+?);
\s*?
option2\s\d*?\s
(\w+?);
.*?
option3\s
"(\w+?)";
\s*
\}
/xsg
) {
push @werte,[$1,$2,$3,$4];
}
1 2 3 4 5
my $g = q~ file: entry(s?) {$item[1]} entry: 'schluesselwort' /\d+/ '{' option(s?) '}' {[$item[2], $item[4]]} option: /[\w\d]+/ /[\w\d]+/ ';' {[$item[1], $item[2]]} ~;
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
format_c@server:~/perl_scripts> cat test.pl && perl test.pl
#!/usr/bin/perl
use strict;
use Data::Dumper;
use Parse::RecDescent;
my @item;
local $/;
my $text = <DATA>;
my $g = q~
file: entry(s?) {$item[1]}
entry: 'schluesselwort' /\d+/ '{' option(s?) '}' {[$item[2], $item[4]]}
option: /[\w\d]+/ /[\w\d]+/ ';' {[$item[1], $item[2]]}
~;
my $parser = Parse::RecDescent->new($g);
$parser->entry($text);
print Dumper \@item;
schluesselwort schluesselwert {
option1 wert1;
option2 wert2;
muell;
}
schluesselwort andererschluesselwert {
option1 wert1;
option2 wert2;
anderermuell;
option3 "wert3";
}
schluesselwort nocheinandererschluesselwert {
option1 wert1;
option2 wert2;
muell;
}
$VAR1 = [];
format_c@server:~/perl_scripts>
7 Einträge, 1 Seite |