Thread Problem mit Match Anweisung und RegEx (9 answers)
Opened by Corni_Cornflake at 2017-08-20 15:38

Corni_Cornflake
 2017-08-20 15:38
#187262 #187262
User since
2017-08-20
13 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich bin mir sicher, dass das eine der einfacheren Fragen hier im Forum ist und ich sicher auch nur einen kleinen Fehler eingebaut habe, aber ich finde ihn einfach nicht und komme nicht weiter. Ich möchte ein größeres Programm schreiben, aber in diesem Teil geht es einfach nur darum, das Pronomen "er" oder "sie" in einem Satz zu finden. Mein Programm bisher sieht wie folgt aus:
Code (perl): (dl )
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
#!/usr/bin/perl -w

#probevariablen
$normalText= "Bla bla blabla bla. Timo macht sein Zimmer sauber. Er vergisst das Staubsaugen.";

@saetze= split(/[(\.|,|?|\!|:|;)]/,$normalText); 
foreach $satz (@saetze) { 
        @woerter= split(/ /,$satz);
        if ($satz=~ m/ /) {
                $satz=~ s/ //;
        }
        if ($satz!~ m/^(er|sie)$/gi) {
                foreach $wort (@woerter) {
                        if ($wort=~ m/[A-Z].*/) {
                                push(@nomen,$wort);
                        }
                }
        }
        else {
                print "$satz\n";
        }
}

foreach (@nomen) {
        print "$_\n";
}


Mein Problem hierbei ist, dass zu aller erst einmal der Punkt am Satzende gelöscht wird, obwohl ich dem Programm doch eigentlich mit den Klammern () sage, dass dieser erhalten bleiben soll. Und weiterhin das größere Problem, die Pronomen werden nicht gefunden, somit also kein Satz angezeigt. Ich habe schon alle möglichen anderen Varianten versucht, aber durch
Code (perl): (dl )
        if ($satz!~ m/er|sie/gi) {

wird natürlich auch das Wort "sauber" gefunden. Wie gesagt, ich bin mir sicher, dass es eine sehr einfache Lösung für das Problem gibt, aber ich finde sie gerade einfach nicht ):
Vielen Dank schon einmal im Voraus!
Last edited: 2017-08-20 15:52:21 +0200 (CEST)

View full thread Problem mit Match Anweisung und RegEx