Regex zur Silbenerkennung

23/01/2008 - 23:53 von Peter Gast | Report spam
Hallo,
ich versuche gerade eine Regex zu konstruieren, mit der ich nur Wörter
angezeigt bekomme, die eine bestimmte Silbenzahl haben. Warum wird bei
dieser Regex auch das Wort "eine" oder "seine" gematcht?

\b([^aeiou ]*(ei|ie|ai|eu|au|aa|oo|[aeiou])[^aeiou ]*){3,3}\b

Eigentlich sollten hier nur Wörter mit 3 Silben erkannt werden

Danke Katharina
 

Lesen sie die antworten

#1 Fabian Aiteanu
25/01/2008 - 00:39 | Warnen spam
Hallo Katharina,

ich versuche gerade eine Regex zu konstruieren, mit der ich nur Wörter angezeigt bekomme, die eine
bestimmte Silbenzahl haben. Warum wird bei dieser Regex auch das Wort "eine" oder "seine"
gematcht?

\b([^aeiou ]*(ei|ie|ai|eu|au|aa|oo|[aeiou])[^aeiou ]*){3,3}\b

Eigentlich sollten hier nur Wörter mit 3 Silben erkannt werden



Der Ausdruck in der großen Klammer wird mit der Kardinalitàt 3 gesucht, d.h. der RegEx Parser sucht
so lange, bis das passt. Das ergibt die folgenden Kombinationen: e-in-e und s-e-in-e.
Das liegt daran, dass du in der eckigen Klammer die Vokale auch einzeln zulàsst.

Vorschlag, der vielleicht hilft: die Kardinalitàt {1,3} verwenden und im Ergebnis die Anzahl der
gefundenen Gruppen zàhlen.

Viele Grüße,
Fabian

Ähnliche fragen