Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

^[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 ;)

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

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.

^[a-zA-Z]+$

aber wieso denn + heist doch nur das es min einma vorkommen muss aber das nichts anderes drin sein darf steht da doch nirgends

ok dann heist ^$ nur das keine sonderzeichen vorkommen dürfen

aber das sagen deine beispiele doch aus!

^$

OK: ""

Not OK: " ", "x", ...

^a$

OK: "a"

Not OK: " a ", " a", "ba", ...

für mich sind leerzeichen sonderzeichen

nein ist mir schon klar was du meinst

text =banana

text = eregi_replace("(.*)(nana)", "\\2\\1", text");

gibt nanaba aus

aber wieso? \\2 zeigt auf die zweite klammer nana aber wieso ist \\1 ba ?

. matched (fast) alle Zeichen

* bedeuted "keins oder beliebig viele"

Im Falle Deines Teststrings matched dies natürlich alles bis zu "nana".

Das ist übrigens ein schöner Zeitpunkt, Dich mit gierigen und genügsamen Suchmustern zu befassen. Erweitere Deinen Teststring einfach mal um ein weiteres "nana" ;)

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

so danke an alle helfenden!

und mr unix. mir geht es um das verstehen danke.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.