Leser: 1
|< 1 2 3 >| | 22 Einträge, 3 Seiten |
$text = "Dies ist [fett]ein fetter Text[/fett].";
1
2
3
4
5
my %tags = (
fett => '<strong>%s</strong>',
kursiv => '<span style="font-style:italic">%s</span>
...
);
$text =~ s/\[([a-zA-Z]+)\](.*)\[\/$1\]/replace(...)/gex;
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
#!/usr/bin/perl use strict; use warnings; my $text = "Dies ist [fett]ein fetter Text[/fett]."; my %tags = ( fett => '<strong>%s</strong>', kursiv => '<span style="font-style:italic">%s</span>' ); # entweder so: my $t=$text; for my $key (keys(%tags)) { $t=~s|\[$key\](.+?)\[/$key\]|sprintf($tags{$key},$1)|egs; } print "$t\n"; #oder so: $t=$text; $t=~s|\[([^\[\]\W]+)\](.+?)\[/\1]|replace($1,$2)|egs; print "$t\n"; sub replace { return sprintf($tags{shift(@_)},shift(@_)) }
[color=#404040]text[/color]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#!/usr/bin/perl use strict; use warnings; my $text = "Dies ist [fett]ein fetter Text[/fett]. [kursiv]Dieser ist Kursiv.[/kursiv] und hier haben wir die Farbe [color=#FF0000]rot[/color]"; my %tags = ( fett => '<strong>%s</strong>', kursiv => '<span style="font-style:italic">%s</span>', color => '<div style="color:%s;">%s</div>', ); my $t=$text; $t=~s|\[([^\[\]\W]+)\](.+?)\[/\1]|replace($1,$2)|egs; $t=~s|\[([^\[\]\W]+)=([^\[\]]+)\](.+?)\[/\1]|replace_opt($1,$2,$3)|egs; print "$t\n"; sub replace { return sprintf($tags{shift(@_)},shift(@_)) } sub replace_opt { return sprintf($tags{shift(@_)},shift(@_),shift(@_)) }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
13: # entweder so:
14: my $t=$text;
15: for my $key (keys(%tags))
16: {
17: $t=~s|\[$key\](.+?)\[/$key\]|sprintf($tags{$key},$1)|egs;
18: }
19: print "$t\n";
20:
21: #oder so:
22: $t=$text;
23: $t=~s|\[([^\[\]\W]+)\](.+?)\[/\1]|replace($1,$2)|egs;
24: print "$t\n";
25:
26: sub replace
27: { return sprintf($tags{shift(@_)},shift(@_)) }
|< 1 2 3 >| | 22 Einträge, 3 Seiten |