5 Stimmen

Wie kann ich ein Wort finden, das jeden Vokal mindestens einmal enthält?

Wie kann ich ein Wort finden, das jeden Vokal mindestens einmal enthält?

4voto

tchrist Punkte 76479

Es kommt darauf an, was Sie mit "Vokal" meinen - und damit auch, was Sie mit "Wort" meinen -, aber der normale Weg wäre in etwa der folgende:

(?xsi)
(?= .* a)
(?= .* e)
(?= .* i)
(?= .* o)
(?= .* u)
(?= .* y)

Aber Sie wollen es nicht auf diese Weise machen. Sie wollen die logische Konjunktion in die eigentliche Programmiersprache einfügen, nicht in die Regex, was zu etwas wie diesem führt (ohne Berücksichtigung von Problemen mit der Groß-/Kleinschreibung):

/a/ && /e/ && /i/ && /o/ && /u/ && /y/

Was ist ein Vokal?

Beachten Sie, dass das ganze "Vokal"-Problem ziemlich lächerlich ist, weil jede Kontinuität wie ein Vokal wirken kann, auch wenn sie nicht wie einer aussieht. Das bedeutet, dass einige Buchstaben, die nicht wie Vokale aussehen, welche sind. Außerdem sehen manche Buchstaben wie Vokale aus, sind es aber nicht.

  1. Zum Beispiel, die s es psst die zweite l en wenig die r en acre und die n en n-te fungieren alle als Vokale. Außerdem gibt es das berühmte Wort cwm aus dem Walisischen, wo w ist ein Vokal.

  2. Außerdem ist die e en Mike nicht als Vokal fungiert, während das i es gibt einen Diphthong (zwei verschmolzene Vokale).

  3. Auch wenn die y en Himmel ist ein Vokal, der y en gelb ist kein Vokal.

  4. Du musst herausfinden, wie viele Vokale es in Wörtern wie liegen o sprechen oder sogar Warteschlange .

  5. Wenn Sie diakritische Zeichen haben, müssen Sie entscheiden, ob diese als separate Zeichen gezählt werden sollen. Sind e , é , è y ê nur ein Vokal, oder vier?

2voto

Wie wäre es damit

\s* (?= \S* a)  (?= \S* e)  (?= \S* i)  (?= \S* o)  (?= \S* u)  (?= \S* y) (\S*)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X