Perl Funktion schreiben aber wie??
Urmel
- perl
Hallo zusammen,
dies geht an alle Perlianer vielleicht wisst ihr wie ich folgendes Problem lösen kann.
ich habe eine Zeichenkette:
"Sehr [SIE]geehrte Frau Meier[\SIE][ER]geehrter Herr Müller[\ER] wir laden Sie..." usw.
Diesen String will ich will ich nun in zwei Variablen speichern,
in Variable eins stände dann nur
"Sehr geehrte Frau Meier wir laden Sie..."
und in Variable zwei stände dann
"Sehr geehrter Herr Müller wir laden Sie..."
habt ihr ne Ahnung wie ich das bewerkstelligen kann.???
Danke
Hallo!
Mein Vorschlag:
---
$male = $female = 'Sehr [SIE]geehrte Frau Meier[\SIE][ER]geehrter Herr Müller[\ER] wir laden Sie...';
$male =~ s@[SIE].+?[\SIE]@@g;
$male =~ s@[ER].+?[\ER]@@g;
---
Versuchs mal. Ich hab's nicht getestet, sollte aber klappen!
suppper DANKEschön
und ein dreifaches Kölle Helau
auf Markus Möller
es klappt danke
und ein dreifaches Kölle Helau
Helau?????????? Wird man da nicht in Köln für totgeprügelt?!
Dann lieber Alaaf!
Hoi,
"Sehr [SIE]geehrte Frau Meier[\SIE][ER]geehrter Herr Müller[\ER] wir laden Sie..." usw.
Diesen String will ich will ich nun in zwei Variablen speichern,
in Variable eins stände dann nur
"Sehr geehrte Frau Meier wir laden Sie..."und in Variable zwei stände dann
"Sehr geehrter Herr Müller wir laden Sie..."habt ihr ne Ahnung wie ich das bewerkstelligen kann.???
Moechtest du eine generelle Loesung? Oder eine auf dieses
Beispiel zugeschnittene?
Letzteres kann ich recht einfach liefern:
$txt =~ m!(.*)[SIE](.*)[\SIE][ER](.*)[\ER](.*)!s;
my $frau = $1.$2.$4;
my $mann = $1.$3.$4;
Naehere Infos zu dem RegEx findest du unter perldoc perlre.
Eine allgemeinere Loesung ist etwas komplexer. Generell sollte
es so laufen, dass du den String durchlaeufst und bei [ stoppst
und pruefst, ob es sich um einen Tag handelt. Wenn ja, musst du
das dazwischen auslesen und an einen String anhaengen. Wenn nein,
ignoriere es.
Das musst du allerdings in einem Binaeren Baum realisieren; du
erhaelst naemlich bei mehr als 2 Tags n^2 Moeglichkeiten.
Gruesse,
CK
Danke auch dir Christian für die schnelle Antwort.