Urmel: Perl Funktion schreiben aber wie??

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

  1. Hallo!
    Mein Vorschlag:
    ---

    Erst mal beide Strings fuellen

    $male = $female = 'Sehr [SIE]geehrte Frau Meier[\SIE][ER]geehrter Herr Müller[\ER] wir laden Sie...';

    Jetzt das jeweils falsche rausloeschen

    $male =~ s@[SIE].+?[\SIE]@@g;
    $male =~ s@[ER].+?[\ER]@@g;
    ---

    Versuchs mal. Ich hab's nicht getestet, sollte aber klappen!

    1. suppper DANKEschön
      und ein dreifaches Kölle Helau
      auf Markus Möller
      es klappt danke

      1. und ein dreifaches Kölle Helau

        Helau?????????? Wird man da nicht in Köln für totgeprügelt?!
        Dann lieber Alaaf!

  2. 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

    1. Danke auch dir Christian für die schnelle Antwort.