Regexpattern
-
Hey kann mir einer helfen?
ich hab regex noch nie verstanden
ich will einfach nur alle leerzeichen = " " zwischen { und } entfernen. kennt einer die pattern dazu?`
danke im vorraus
-
umuha schrieb:
Hey kann mir einer helfen?
ich hab regex noch nie verstanden
ich will einfach nur alle leerzeichen = " " zwischen { und } entfernen. kennt einer die pattern dazu?`
danke im v******
Hast Du denn versucht, sie zu verstehen? Wie wäre es, wenn Du Dir mal eine Anleitung durch arbeitest. Dann hast Du nicht nur dieses Problem gelöst, sondern auch zukünftige. Dein aktuelles Problem eignet sich bestens als Motivation und Übungsaufgabe.
-
echt ich habs probiert^^
ich bin aktuell bei /{^(\s)\}
aber es funktioniert netund ich verzweifle langsam kann mir nicht einer helfen?
-
1231asd schrieb:
echt ich habs probiert^^
ich bin aktuell bei /{^(\s)\}
aber es funktioniert netund ich verzweifle langsam kann mir nicht einer helfen?
Was soll das '/'? Was soll das '^'? warum Klammern? Was bedeutet '\s' (in Perl regex bedeutet das tatsächlich EIN Whitespace)? Was soll das '\' vor der schließenden Klammer? Wo hast Du gesagt, dass alle Leerzeichen ersetzt werden sollen und nicht nur eins? Und überhaupt, in welcher Sprache bewegst Du dich denn überhaupt? Es gibt da durchaus Unterschiede in den regulären Ausdrücken.
-
das ^ bedeutet: wähle alles aus außer leerzeichen
und das \{ dass ein "{" gesucht werden soll:o also denk ich zumindest
also zusammen wollte ich damit sagen... suche den inhalt zwischen { } und wähle alles aus ^(außer) \s = leerzeichen
in brauch das in PHP
-
Gehen wir mal Schritt für Schritt durch:
Der reguläre Ausdruck ist "
/{^(\s)\}
"Die Zeichen '/', '{' haben keine besondere Bedeutung. Du suchst also erst mal nach der Zeichenfolge "/{". Das ^ bedeutet "Anfang". Ansonsten hat es noch eine negierende Bedeutung in eckigen Klammern. Es steht nicht in eckigen Klammern. Also matched es nur den Anfang. Also haben wir die Zeichenfolge "/{" gefolgt vom Anfang. Das kann natürlich gar nicht matchen.
Als nächstes kommt ein \s in Klammern. Die Klammern haben hier keine Bedeutung. Das \s matcht genau einem Whitespace Zeichen. Gefolgt wird das von '\}'. Das Backslash hat wohl gar keine Bedeutung hier. Es matched also dem '}'.
Wenn wir das '^' weg lassen, was ja bewirkt, dass es gar nicht matchen kann, dann würde der Ausdruck "
/{(\s)}\}
" immerhin die Zeichenfolge "/{ }" finden. Aber nur mit einem einzelnen Leerzeichen.Und jetzt setze Dich mal hin und arbeite die Anleitung für reguläre Ausdrücke in PHP durch.