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.
ich habe jetzt nochmal im Toutorial nachgeschaut, das gebastelt "@^.[hallo|mensch|aff]*$"
Aber was bedeutet dann das andere?
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
das regex prüft dein wort nach "hallomenschaff" ab, da das eingegebene wort hallomenschaffe diesen teil enthält, liefert das regex true zurück !
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
@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
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?
Hallo ANSI_code,
richtig, durch ^ und $ kommt es nur zu einem Treffer, wenn der Pattern auf den gesamten String passt.
herbivore