Anzahl gleicher aufeinanderfolgender Zeichen in einem string zäh
Ruud
- php
Hi,
Ich möchte prüfen, ob mehr als 4 identische, aufeinanderfolgende Zeichen im Strimg vorhanden sind.
if(preg_match("/(.{4})/",$string)) echo "Treffer!";
So hats nicht funktioniert.
Wo liegt denn mein Fehler?
Grüße, Ruud
Ich möchte prüfen, ob mehr als 4 identische, aufeinanderfolgende Zeichen im Strimg vorhanden sind.
if(preg_match("/(.{4})/",$string)) echo "Treffer!";
So hats nicht funktioniert.
Wo liegt denn mein Fehler?
Du musst schon das Zeichen speichern und dann abfragen, ob es wiederholt auftritt
/(.)\1\1\1/
mfg Beat
»» Ich möchte prüfen, ob mehr als 4 identische, aufeinanderfolgende Zeichen im Strimg vorhanden sind.
»» if(preg_match("/(.{4})/",$string)) echo "Treffer!";
»» So hats nicht funktioniert.
»» Wo liegt denn mein Fehler?Du musst schon das Zeichen speichern und dann abfragen, ob es wiederholt auftritt
/(.)\1\1\1/mfg Beat
Hi Beat,
aber auf SelfHTML steht doch:
/x{10,}/ passt auf 10 und mehr 'x' in Folge
Was genau (in Worten) macht Deine Regex?
Grüße, Ruud
/(.)\1\1\1/
aber auf SelfHTML steht doch:
/x{10,}/ passt auf 10 und mehr 'x' in Folge
du suchst aber nicht nach x sondern nach .
womit uvwx ein gültiger Match wäre weil alle zeichen der Klasse . zugehören.
Was genau (in Worten) macht Deine Regex?
Sie speichert das erste beliebige Zeichen.
\1 ist eine Referenz auf das in (.) gespeicherte Zeichen
(Das ist analog zu $1,
darf aber im Match pattern selbst verwendet werden)
Mit anderen Worten.
uvwx wird nicht matchen, weil u gespeichert wird, und \1 auf diesen Speicher zugreift, um das Pattern zu ergänzen.
mfg Beat