• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

preg_match: Richtiges Suchmuster in diesem Fall

aJunkie

Mitglied
Hallo,

ich bin echt kein Profi von regulären Ausdrücken.

Das habe ich nur probeweise eingesetzt, um zu schauen, ob überhaupt was passiert. Aber es reagiert nicht wirklich.
PHP:
if(!preg_match('/^(\w{2,}?)|(\w{2,}?)|(\w{2,}?)$/' , $single)) meldung('Nein');
Irgendwie steige ich da nicht durch. Ich müsste stundenlang experemtieren, bis ich drauf komme. Hoffe, jemand erklärt es mir einfach an diesem Beispiel mal kurz, warum etc.

Ich möchte, dass folgende Formate berücksichtigt werden:
MUSS: zeichenkette_mit_whitespace_etc. | wieder_zeichenkette
Also zwei Strings von einer Pipe getrennt muss sein.

OPTIONAL: zeichenkette \w? | zeichenkette \w? | zeichenkette \w?

Zeichenkette darf zwar Satzzeichen, Zahlen und Whitespace enthalten, aber auf keinen Fall leer sein oder nur aus Zeichen, etc. bestehen.
Der letzte optionale Wert ist eben die zweite Pipe und dahinter die dritte Zeichenkette.
 
Werbung:
/^([^|]+)|([^|]+)/

Kurz erklärt: beliebige Zeichen außer Pipe, dann eine Pipe dann wieder beliebige Zeichen außer Pipe. Mit ^$ eingegrenzt, dass die Pipe nur einmal vorkommen darf. Ungetestet. Möglich dass die mittlere Pipe escaped werden muss.
 
Werbung:
PHP:
if(preg_match('/^([^|]+)\|([^|]+)([|]{0,1}[^|]+)([^\n])$/' , $single)):
So ergibt das doch Sinn oder? Oder fehlt irgendein Aspekt?
 
Werbung:
Wenn ich mich hier mal kurz mit ner Frage dazwischen werfen darf:
preg_match ist für mich immer noch eine Funktion, die ich nicht nur schwer durchblicke, sondern mein Durchblick 0,0nix ist!
Im handbuch komm ich mit der Erklärung auch nicht wirklich zurande.
Kann mir jemand eine Seite empfehlen, wo das wirklich, wirklich für Vollspacken erklärt wird?
Ich halte mich zwar nicht für einen, aber im Fall von preg_match hab ich echt ein Mordsmäßiges Brett vorm Kopf!
 
Zurück
Oben