RegExp
Carsi
- php
Hi!
Ich habe folgende String-Möglichkeiten in einem Template:
{foo}
{foo:bar}
Nun möchte ich, dass preg_match_all mir diese liefert.
Nummer eins ist kein Problem: /{([0-9a-z])}/i
Jedoch weiß ich nicht wie ich die _optionale_ Nummer zwei einbauen soll.
Ich habe mir ein paar RegExp Seiten angeschaut es aber nicht zum laufen bekommen.
Ich würde mich freuen wenn mir jemand zeigen könnte wie es aussieht.
mfg Carsi
Hi,
Jedoch weiß ich nicht wie ich die _optionale_ Nummer zwei einbauen soll.
"optional" wird in Regular Expressions durch ein Fragezeichen notiert.
Cheatah
Moin!
"optional" wird in Regular Expressions durch ein Fragezeichen notiert.
Das weiß ich aber: /{([a-z]:?)([0-9a-z])}/i funzt nicht.
Ich weiß nicht wie ich 'es' korrekt davor setze.
rgds
Carsten
Hi,
Das weiß ich aber: /{([a-z]:?)([0-9a-z])}/i funzt nicht.
was heißt "funzt"? Du hast hier genau den Doppelpunkt optional gemacht.
Ich weiß nicht wie ich 'es' korrekt davor setze.
Danach, nicht davor.
Cheatah
Hallo Carsten,
Ich finde es hilfreich bei RegExp schrittweise vorzugehen, also
Gruß,
Dieter
Hallo Dieter!
Ich möchte das 'foo:' optional ist, nicht der Doppelpunkt :D
/{([a-z])}/i - so klappt es ja wunderbar
Nun mit der zweite teil davor:
/{(ZWEI)([a-z])}/i
ZWEI soll optional sein. also:
/{([a-z]:?)([a-z])}/i
Aber leider gibt er mir keine Treffer aus
Es soll entweder {foo} oder {foo:bar} gefunden werden.
mfg, Carsi
Hi,
ZWEI soll optional sein. also:
nein, (ZWEI) soll optional sein. Also?
Cheatah
nein, (ZWEI) soll optional sein. Also?
([a-z]:)?([a-z])
oder
(([a-z]:)?)([a-z])
? ^^
Hi,
([a-z]:)?([a-z])
oder
(([a-z]:)?)([a-z])
ja, beispielsweise. Zumindest im Ansatz. Du möchtest Dich noch mit Quantifiern und Subpattern beschäftigen.
Cheatah
Moin!
ja, beispielsweise. Zumindest im Ansatz. Du möchtest Dich noch mit Quantifiern und Subpattern beschäftigen.
Also ich habe mich nun mit http://www.regenechsen.de/regex_de/regex_3_de.html beschäftigt
und jetzt klappt es auch:
/{(([a-z]+:)?)([a-z]+)}/i
Kann ich das ganze noch irgendwie verkürzen?
rgds, Carsten
Hi,
Kann ich das ganze noch irgendwie verkürzen?
hast Du Dich vertippt? "Verbessern" kann ich ja verstehen, aber "verkürzen" macht keinen Sinn. Verbessern kannst Du es mit Subpatterns; der Code wird dadurch etwas länger (was zu exakt 100% egal ist).
Cheatah
Danke für die Geduld, Cheatah!
rgds, Carsten