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

Linuxer
 2017-08-20 18:43
#187269 #187269
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Hi,

Du hast zwar runde Klammern in Deinem Split-Muster, aber die stehen innerhalb von eckigen Klammern.
Damit sind sie Bestandteil einer Zeichenklasse und haben keine einfangende Funktion mehr.
Innerhalb einer Zeichenklasse brauchst Du auch kein | um einzelne verschiedene Zeichen anzugeben.

Code: (dl )
@saetze= split(/[(\.|,|?|\!|:|;)]/,$normalText); 


Mit Deinem Muster wird gesplittet an:
- (
- .
- | (zählt nur einmal, auch wenn es mehrmals genannt wird)
- ,
- ?
- !
- :
- ;
- )

Vieleicht willst Du eher:
Code: (dl )
@saetze = split( /([.,:;?!])/,$normalText ); 


Oder ohne Zeichenklasse:

Code: (dl )
@saetze = split( /(\.|,|:|;|\?|\!)/,$normalText ); 


Alles ungetestet zusammengeschrieben ;-)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Problem mit Match Anweisung und RegEx