Zum Inhalt springen

Reguläre Ausdrücke


Empfohlene Beiträge

Hallo ihr!

So wie der Titel schon sagt suche ich hilfe bei Regulären Ausdrücken.

Also das man z.b bb-code in html code umwandelt.

fangen wir mal an:

^[a-z]$ //stimmt mit jedem einzelnne buchstaben in kleinschreibung überein

aber wieso benötige ich dafür ^ und $ schließlich sagt die klammer das sowieso

bana?na //stimmt mit banana und banna überein aber nicht mit banaana .

wieso den? fragezeichen heist doch es ist egal was für ein zeichen davor steht.

vielleicht kann mir das jemand noch mit * und + erklären.

ba(na|ni)+ //stimt mit bana und banina aber nicht mit naniba überein

wozu benötige ich hier schon wieder das + ich bracuh doch nur | damit ich eine alternative erschaffe.

PS: ok ich weis selbst das ich nicht gerade gut geschrieben habe aber ich weis nicht wie ich es besser ausdrücke

Link zu diesem Kommentar
Auf anderen Seiten teilen

^[a-z]$ //stimmt mit jedem einzelnne buchstaben in kleinschreibung überein

Diese Regex stimmt nur mit einem String überein, welcher nur einen einzigen Buchstaben enthält, welcher dann auch noch kleingeschrieben ist. ^ und $ sind die Begrenzer für Stringanfang und Stringende, was in der Regex bedeudet, dass der String mit diesem Buchstaben anfängt und auch aufhört.

bana?na //stimmt mit banana und banna überein aber nicht mit banaana .

wieso den? fragezeichen heist doch es ist egal was für ein zeichen davor steht.

klar ist egal was für ein Zeichen vor dem Fragezeichen steht, aber das Fragezeichen bezieht sich auch auf selbiges. "a?" bedeutet in der Regex konkret, dass an dieser Stelle genau EIN oder GARKEIN "a" vorkommt.

"+" wäre, dass das a mindestens einmal vorkommt.

"*" wäre, dass das a keinmal oder beliebig oft vorkommt.

? / + / * sind also Quantifizierer und beziehen sich entweder auf das einzelne Zeichen davor, oder auf einen voranstehenden geklammerten Ausdruck.

ba(na|ni)+ //stimt mit bana und banina aber nicht mit naniba überein

wozu benötige ich hier schon wieder das + ich bracuh doch nur | damit ich eine alternative erschaffe.

Das + sagt in diesem Fall einfach aus, dass deine Alternative "na" oder "ni" mehrmals vorkommen darf nach einem anfänglichen ba, aber ein "na" ODER ein "ni" muss mindestens vorkommen.

PS: ok ich weis selbst das ich nicht gerade gut geschrieben habe aber ich weis nicht wie ich es besser ausdrücke

Geht mir oft auch so :D

Ich hoffe du verstehst meinen Gehirndünschiss, den ich jetzt mal Antwort nenne ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm danke erstmal, schaun ob ichs verstanden habe

ba(na)+na

würde in diesem fall bedeuten das banana und bananana und banananana geht weil es ja beliebig oft vorkommen darf aber mindestens einmal. richtig?

^[a-zA-Z]+$

würde bedeuten das im string mindestens ein buchstabe vorkommen muss ob gros oder klein wegen dem + aber eigentlich brauche ich ^ und $ doch gar nicht

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm danke erstmal, schaun ob ichs verstanden habe

ba(na)+na

würde in diesem fall bedeuten das banana und bananana und banananana geht weil es ja beliebig oft vorkommen darf aber mindestens einmal. richtig?

100 / 100 punkten

^[a-zA-Z]+$

würde bedeuten das im string mindestens ein buchstabe vorkommen muss ob gros oder klein wegen dem + aber eigentlich brauche ich ^ und $ doch gar nicht

richtig und falsch ( sry musste sein ;) )

Also erstmal hast du recht mit dem, was diese regex aussagt. mind. ein Buchstabe muss in dem String vorkommen, ABER es darf auch NICHTS anderes vorkommen als Buchstaben.

Was du z.B. meinst wäre ja [a-zA-Z]. Selbiges matched wenn irgendwo im Vergleichsstring mindestens ein Buchstabe vorkommt. Dennoch sind beide Regexes von der Aussage her verschieden, denn bei ^[a-zA-Z]+$ darf kein anderes Zeichen als ein Buchstabe im String vorkommen, da der String ja mit dem einen oder den mehreren Buchstaben anfängt und aufhört. Bei [a-zA-Z] darf auch iwo vor oder nach dem Buchstaben noch ein Leerzeichen, eine Ziffer oder was auch immer vorkommen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also das man z.b bb-code in html code umwandelt.

Das willst du nicht wirklich von Hand machen? Da gibt's bestimmt schon vorgebaute Sachen. Wenn du es von Hand machen willst, dann denk' bitte mal ueber lexialische Analyse deiner Daten nach. Auch da gibts bestimmt schon vorgefertigte Module.

PS: ok ich weis selbst das ich nicht gerade gut geschrieben habe aber ich weis nicht wie ich es besser ausdrücke

Ich komm grade von ner Party, die seit gestern um sieben am Laufen war und weiss auch nicht wie ich mich ausdruecken soll, aber wenn es dir nur um das Verstehen von Regulaeren Ausdruecken geht, dann ist das die Seite:

Etext Center: Services

Hast du die Seite verstanden, ist der Rest nur noch nachschlagen.

Gute Nacht

Unix

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...