Leser: 2
![]() |
|< 1 2 3 >| | ![]() |
21 Einträge, 3 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#! /usr/bin/perl
use strict;
use warnings;
my $string = 'Object_Plant :Color Position;Object';
#Loesung 1 --> RegEx
{
$string =~ /^\s*?([^\:]+)\:\s*?([^\;]+)\s*?\;\s*?(.+)/;
print $1," -> ",$2," -> ",$3,"\n";
}
#Loesung 2 --> substr
{
my $pos_dp = index($string,':');
my $pos_sk = index($string,';');
my $part_one = substr($string,0,$pos_dp);
my $part_two = substr($string,($pos_dp + 1),($pos_sk - $pos_dp - 1));
my $part_three = substr($string,($pos_sk + 1));
print $part_one," -> ",$part_two," -> ",$part_three,"\n";
}
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
if($element =~ m!^ *([\w_]+) *: *; *$!)#keine relframe,keine überklasse
{
print '<\frame_entry>',"\n";
}
elsif($element =~ m!^ *([\w_]+) *: *([\w_]+)*; *$!)#relframe aber keine Überklasse
{
print "Fall1:relframe aber keine Überklasse\n";
}
elsif($element =~ m!^ *([\w_]+) *: *;*([\w_]+) * $! )#kein relframe aber überklasse
{
print "Fall2:keine relframe aber Überklasse\n";
}
elsif($element =~ m!^ *([\w_]+) *: *([\w_]+)*; *([\w_]+) * $!)#relframe und überklasse
{
print"Fall3:relframe und überklasse\n";
}
elsif($element =~ m!^ *([\w_]+) *: *[^\;]+ *; * $!)#mehrere relframes, keine überklasse
{
print "Fall4: mehrere relframes, keine überklasse\n";
}
elsif($element =~ m!^ *([\w_]+) *: *[^\;]+ *; *([\w_]+) * $!)#mehrere relframes,überklasse
{
print "Fall5: mehrere relframes,überklasse\n";
}
else {print "FEHLER\n";}
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
#!/usr/bin/perl
use strict;
use warnings;
my @file = ('Negation :;',
'Object_Ground:;Object ',
'Object_Plant :Color Position;Object',
' Test 1 : Blubb Bla;;;;;Test;;;;::',
);
for my $zeile (@file) {
chomp $zeile;
print "Zeile '$zeile'\n";
my ($vorn, $mitte, $hinten) = $zeile =~ m~^([^:]*):([^;]*);(.*)$~;
for ($vorn, $mitte, $hinten) { $_ = '' unless defined; }
s~^\s+|\s+$~~g for ($vorn, $mitte, $hinten);
print "\tvorn : '$vorn'\n\tmitte : '$mitte'\n\thinten: '$hinten'\n";
if (length($vorn) and length($mitte) and length($hinten)) {
print "\tFall3: relframe und Ueberklasse\n";
if ($mitte =~ m~\s~) {
print "\tMitte enthaelt mehrere Werte. (Fall 4)\n";
my @mwerte = split /\s+/, $mitte;
print "\tDiese Werte sind: '", (join "', '", @mwerte), "'\n";
}
}
elsif (length($vorn) and length($mitte)) {
print "\tFall1: relframe aber keine Ueberklasse\n";
}
elsif (length($vorn) and length($hinten)) {
print "\tFall2: keine relframe aber Ueberklasse\n";
}
elsif (length($vorn)) {
print "\t<\\frame_entry>\n";
}
else {
print "\tFEHLER\n";
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Zeile 'Negation :;'
vorn : 'Negation'
mitte : ''
hinten: ''
<\frame_entry>
Zeile 'Object_Ground:;Object '
vorn : 'Object_Ground'
mitte : ''
hinten: 'Object'
Fall2: keine relframe aber Ueberklasse
Zeile 'Object_Plant :Color Position;Object'
vorn : 'Object_Plant'
mitte : 'Color Position'
hinten: 'Object'
Fall3: relframe und Ueberklasse
Mitte enthaelt mehrere Werte. (Fall 4)
Diese Werte sind: 'Color', 'Position'
Zeile ' Test 1 : Blubb Bla;;;;;Test;;;;::'
vorn : 'Test 1'
mitte : 'Blubb Bla'
hinten: ';;;;Test;;;;::'
Fall3: relframe und Ueberklasse
Mitte enthaelt mehrere Werte. (Fall 4)
Diese Werte sind: 'Blubb', 'Bla'
1
2
for ($vorn, $mitte, $hinten) { $_ = '' unless defined; }
s~^\s+|\s+$~~ for ($vorn, $mitte, $hinten);
![]() |
|< 1 2 3 >| | ![]() |
21 Einträge, 3 Seiten |