Kategorien

Regex-Linter

Erkennt fehleranfällige und riskante Regex-Muster, prüft auf katastrophales Backtracking, unverankerte Muster und bietet Umschreibvorschläge

Regex-Linter

Überblick

Der Regex-Linter analysiert reguläre Ausdrücke auf häufige Anti-Pattern, Leistungsprobleme und Korrektprobleme. Hilft beim Schreiben besserer, sicherer und effizienterer regulärer Ausdrücke.

Erkannte Probleme

Kritische Probleme (Leistung)

  • Katastrophales Backtracking : Verschachtelte Quantoren wie (a+)+ können exponentielle Zeitkomplexität verursachen
  • Quadratisches Verhalten : Muster wie (.*)* zeigen O(n²)-Leistung
  • Unbegrenzte Wiederholungen : Gierige Quantoren ohne maximale Längenbegrenzung

Fehlerprobleme (Korrektheit)

  • Unmaskierte Punkte : Verwenden von . anstatt . (wörtlicher Punkt)
  • Fehlende Anker : Muster können überall im Text übereinstimmen
  • Ungültige Zeichenklassen : Bereiche wie [a-Z] enthalten unerwartete Zeichen
  • Oktal-Escapes : Zweideutige im modernen Regex

Warnprobleme (Lesbarkeit)

  • Sichtbares Nicht-Gierig : Muster .*? könnten negierte Zeichenklassen verwenden
  • Redundante Escapes : Unnötige Backslashes wie \-
  • Doppelte Verneinung : Verwirrende Muster [^[^]]
  • Mehrdeutige Alternation : a|ab wobei die Reihenfolge wichtig ist

Wichtige Fakten

Kategorie
Development
Eingabetypen
text, select, checkbox
Ausgabetyp
json
Sample-Abdeckung
4
API verfügbar
Yes

Überblick

Der Regex-Linter analysiert reguläre Ausdrücke auf häufige Anti-Pattern, Leistungsprobleme und Korrektprobleme. Er hilft beim Schreiben besserer, sicherer und effizienterer regulärer Ausdrücke, indem er kritische Fehler erkennt und Umschreibvorschläge bietet.

Wann verwenden

  • Beim Schreiben neuer Regex-Muster für die Eingabevalidierung, um Fehler frühzeitig zu erkennen.
  • Zur Überprüfung bestehender regulärer Ausdrücke auf Leistungsprobleme wie katastrophales Backtracking.
  • Um die Lesbarkeit und Wartbarkeit von komplexen Regex-Mustern in Codebasen zu verbessern.

So funktioniert es

  • Geben Sie das zu prüfende Regex-Muster in das Eingabefeld ein.
  • Wählen Sie optional Regex-Flags, den Zieldialekt und die Prüfungsebene aus.
  • Aktivieren Sie die Option für Umschreibvorschläge, um Verbesserungsvorschläge zu erhalten.
  • Starten Sie die Analyse, um einen Bericht mit erkannten Problemen und Lösungsvorschlägen zu sehen.

Anwendungsfälle

Validierung von Benutzereingaben in Webformularen, z.B. für E-Mail-Adressen oder Passwörter.
Optimierung von regulären Ausdrücken in Datenverarbeitungsskripten zur Steigerung der Verarbeitungsgeschwindigkeit.
Sicherheitsprüfung von Regex-Mustern in Anwendungen, um ReDoS-Angriffe (Regular Expression Denial of Service) zu verhindern.

Beispiele

1. E-Mail-Validierungsmuster prüfen

Hintergrund
Ein Webentwickler implementiert ein Registrierungsformular und benötigt ein zuverlässiges Regex für die E-Mail-Validierung.
Problem
Das aktuelle Muster `.*@.*\..*` ist zu allgemein und könnte ineffizient sein oder falsche Positive zulassen.
Verwendung
Geben Sie das Muster in das Regex-Feld ein, wählen Sie 'JavaScript' als Dialekt und 'Standard' als Prüfungsebene.
Ergebnis
Das Tool erkennt fehlende Anker und ungenaue Zeichenklassen, schlägt ein optimiertes Muster vor und verbessert so die Genauigkeit und Leistung.

2. Log-Analyse-Regex optimieren

Hintergrund
Ein DevOps-Engineer schreibt ein Skript, um Fehlermeldungen in großen Logdateien zu extrahieren.
Problem
Das Regex `(error|warning):.*` verursacht bei langen Zeilen langsames Backtracking und beeinträchtigt die Skriptleistung.
Verwendung
Fügen Sie das Muster ein, setzen Sie die Prüfungsebene auf 'strict' und aktivieren Sie Umschreibvorschläge.
Beispielkonfiguration
{"checkLevel": "strict", "includeSuggestions": true}
Ergebnis
Das Tool identifiziert quadratisches Verhalten und empfiehlt die Verwendung von negierten Zeichenklassen wie `[^\n]*` für effizienteres Matching.

Mit Samples testen

regex

Verwandte Hubs

FAQ

Welche Regex-Dialekte unterstützt der Linter?

Der Linter unterstützt JavaScript, Python, PCRE, Go (RE2) und Java.

Was bedeuten die verschiedenen Prüfungsebenen?

Basic prüft nur kritische Leistungsprobleme, Standard fügt Fehler und Warnungen hinzu, Strict umfasst alle Probleme einschließlich Stilvorschläge.

Wie kann ich katastrophales Backtracking in meinem Regex vermeiden?

Vermeiden Sie verschachtelte Quantoren wie (a+)+ und verwenden Sie Anker, um die Suchbereiche einzuschränken.

Kann ich eigene Regex-Flags wie 'g' oder 'i' angeben?

Ja, im Feld 'Regex-Flags' können Sie Flags wie g (global), i (case-insensitive), m (multiline) usw. eingeben.

Was passiert, wenn mein Regex syntaktisch ungültig ist?

Das Tool erkennt syntaktische Fehler und gibt eine Fehlermeldung mit Vorschlägen zur Korrektur aus.

API-Dokumentation

Request-Endpunkt

POST /de/api/tools/regex-linter

Request-Parameter

Parameter-Name Typ Erforderlich Beschreibung
regexPattern text Ja -
regexFlags text Nein -
targetDialect select Nein -
checkLevel select Nein -
includeSuggestions checkbox Nein -

Antwortformat

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
JSON-Daten: JSON-Daten

MCP-Dokumentation

Fügen Sie dieses Tool zu Ihrer MCP-Server-Konfiguration hinzu:

{
  "mcpServers": {
    "elysiatools-regex-linter": {
      "name": "regex-linter",
      "description": "Erkennt fehleranfällige und riskante Regex-Muster, prüft auf katastrophales Backtracking, unverankerte Muster und bietet Umschreibvorschläge",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=regex-linter",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Sie können mehrere Tools verketten, z.B.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, maximal 20 Tools.

Wenn Sie auf Probleme stoßen, kontaktieren Sie uns bitte bei [email protected]