Laden...

Regex: Warum passt ^.[(hallo)(mensch)(aff)]*$ auf hallomenschaffe

Erstellt von ANSI_code vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.372 Views
ANSI_code Themenstarter:in
467 Beiträge seit 2007
vor 16 Jahren
Regex: Warum passt ^.[(hallo)(mensch)(aff)]*$ auf hallomenschaffe

Der Pattern:
@"^.[(hallo)(mensch)(aff)]*$"

warum kommt der string "hallomenschaffe" durch?
Das erste Zeichen ist beliebig.
in den nächsten Zeichen kommen der Reihe nach hallo(aber das erste Zeichen ist doch schon weg!?) mensch und affe(aber das e fehlt doch!?),dann wird das Ende angezeigt.

Kann mir jemand erklären, warum das so ist?
Danke im Voraus.

ANSI_code Themenstarter:in
467 Beiträge seit 2007
vor 16 Jahren

ich habe jetzt nochmal im Toutorial nachgeschaut, das gebastelt "@^.[hallo|mensch|aff]*$"

Aber was bedeutet dann das andere?

D
89 Beiträge seit 2008
vor 16 Jahren

das "^." sagt das ein bbilibiges zeichen vor dem hallo stehen kann , also auch nichts .... beduetet ja nich, das ein zeichen davor stehen muss...

falls ich mich irre bitte berichtigen...

ps.

@ ansi: www.regexlib.com <- sehr hilfreich zum testen und finden von regex

ANSI_code Themenstarter:in
467 Beiträge seit 2007
vor 16 Jahren

verstehe. Und was ist mit dem fehlenden E?

D
89 Beiträge seit 2008
vor 16 Jahren

das regex prüft dein wort nach "hallomenschaff" ab, da das eingegebene wort hallomenschaffe diesen teil enthält, liefert das regex true zurück !

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Dexter323,

deine Begründungen stimmen leider nicht. Ein Punkt steht immer für genau ein Zeichen. Ein Punkt kann nicht für nichts stehen.

Hallo ANSI_code,

ich denke, du bist mit den eckigen Klammern auf dem Holzweg. Was immer du in die eckigen Klammern schreibst: Es wird immer nur ein Zeichen gematcht. Vermutlich meinst du nicht eckige sondern runde Klammern.

herbivore

D
89 Beiträge seit 2008
vor 16 Jahren

@herbivore

danke für deine berichtigung, war wie oben gesagt nur eine vermutung, da ich mein ide getest habe und es das erhoffte ergibnis lieferte,ging ich davon aus, dass das richtig war.

@ANSI_code

sorry für die unannehmlichkeiten

ANSI_code Themenstarter:in
467 Beiträge seit 2007
vor 16 Jahren

habe ich verstanden.
@ heriefore: Ja ich wollte die Runden Klammern
@ Dexter323: Aber ich zeige doch den Annfang und das Ende an(^$), desshalb ict die Frage doch garnicht, ob der Teil enthalten wird, oder irre ich mich?

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo ANSI_code,

richtig, durch ^ und $ kommt es nur zu einem Treffer, wenn der Pattern auf den gesamten String passt.

herbivore