MudGuard: Regex zur Suche nach Vorkommen einer Zahl in String

Beitrag lesen

Hi,

Suche nach [0-9]{3,} a/k/a [\d]{3,}

NEIN! Das ist NICHT a/k/a!

\d ist nicht dasselbe wie [0-9] (\d matcht alle Dezimal-Ziffern, nicht nur die ASCII-Dezimal-Ziffern, also z.B. auch die bengalischen ab \u09E6)
(oder ist das in Javascript anders als in Perl?).

Abgesehen davon: Warum packst Du \d in eine Zeichenklasse? \d matcht schon ganz alleine Ziffern.

Und warum {3,} statt 3?
Wenn mehr als drei aufeinanderfolgende Ziffern im String enthalten sind, findet \d{3} die ersten 3 davon. test() findet also den Treffer, mit Negierung wird dieser String dann also von domeb als unpassend aussortiert.
Da es hier ja gar nicht um den Suchtreffer-String (welcher Teil des Strings wurde gematcht) geht, sondern nur darum, *ob* 3 (oder mehr) aufeinanderfolgende Ziffern vorhanden sind, ist {3} ausreichend. Und ggf. deutlich effizienter. Stell Dir vor, der String hätte ein paar Tausend aufeinanderfolgende Ziffern - mit {3} kann nach 3 Ziffern abgebrochen werden. Mit {3,} müssen alle Ziffern aufgesammelt werden (um ggf. später den getroffenen String weiterzubearbeiten) ...

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.