Reguläre Ausdrücke auch mit unerwünschten Treffern testen

Ein Treffer ist ein Anfang, kein Beweis für die richtige Absicht des Musters. Gute Tests enthalten fast passende Texte, die abgelehnt werden müssen.

Die Regel zuerst in Worten formulieren

Suchen Sie einen Code in einem Absatz oder prüfen Sie eine ganze Zeile? Ein passender Ausschnitt in einer ungültigen Eingabe kann erfolgreich aussehen, ohne die Anforderung zu erfüllen.

Nutzen Sie kleine Beispiele für Zeichen, Länge und Grenzen. Lange Texte erschweren die Erklärung; ein Muster erzwingt keine ungeschriebenen Geschäftsregeln.

Flags und Schriftsysteme ändern das Ergebnis

g fordert mehrere Treffer, i verändert die Beachtung der Großschreibung. JavaScripts \w definiert keine Wörter aller Schriftsysteme; Unicode-Eigenschaftsklassen mit u können nötig sein.

ToolRoof prüft JavaScript-Syntax und g, i, m, s, u. Positionen zählen UTF-16-Einheiten, nicht stets sichtbare Zeichen. Andere Regex-Engines können sich anders verhalten.

Quellen: MDN — JavaScript regular expressions, flags and Unicode

Erfolgreiche Beispiele sind kein Sicherheitsnachweis

Prüfen Sie einen Nichttreffer sowie die gewünschten unteren und oberen Grenzen. Mehrzeilige Daten gehören dazu, wenn sie im Einsatz vorkommen.

Die Verarbeitung ist begrenzt und zeigt höchstens 200 Treffer; das Limit beweist nicht, dass es keine weiteren gibt. Es gibt keine Geschwindigkeits- oder Sicherheitsgarantie für jede Eingabe und keine Ausführung von Ersetzungscode oder eingegebenem Text.

Beispiel: 2 passende Codes und 2 Beinahetreffer

In ID-17 ID-204 ID-7 XID-99 findet \bID-\d{2,3}\b mit g die Codes ID-17 und ID-204. ID-7 ist zu kurz; die Wortgrenze verhindert einen Anfang innerhalb von XID-99.

Ohne g kommt nur der erste Treffer zurück. Die Regel beschreibt Beispielcodes, belegt aber weder reale Kennungen noch Zugriffsrechte oder sonstige Systemanforderungen.

Quellen