Frage von silesius, 47

Wie erstelle ich dafür ein Regex?

Das Wort muss mindestens einen Buchstaben und mindestens eine Ziffer beinhalten. Alle Buchstaben außer "x", "=", und Anführungszeichen sind erlaubt, es muss mindestens 8 Zeichen lang sein. maximale Länge: 30 Zeichen.

Danke schon jetzt für jede Hilfestellung!

Expertenantwort
von TeeTier, Community-Experte für programmieren, 29

Das ist genau so eine Aufgabe, für die ich RegEx gerade NICHT einsetzen würde.

Falls du all die genannten Punkte mit herkömmlicher Programmierung löst, wird der Code im Endeffekt nur wenige Zeilen umfassen, schöner, lesbarer und vermutlich auch fehlerfreier oder gar schneller sein.

Wenn ich die Wahl zwischen einem ellenlangen bzw. fehleranfälligen RegEx-Blob und wenigen Zeilen übersichtlichem Code habe, dann entscheide ich mich für Letzteres.

Bevor man RegEx einsetzt, sollte man lieber vorher abwägen, ob es auch sinnvoll ist. :)

PS: Deine Aufgabe ist zwar mit RegEx relativ leicht lösbar, aber sehr sehr hässlich und unschön lang! :)

Trotzdem viel Erfolg mit deinem Projekt! :)

PPS: Nichts macht mehr Spaß, als gefühlt eine halbe Seite RegEx-Bloat zu debuggen oder ein Refactoring daran durchführen zu müssen, vor allem, wenn das Ganze von einem unbekannten Dritten stammt, der sein Geheimnis (also die genaue Arbeitsweise) mit ins Grab genommen hat. :)

Kommentar von triopasi ,

Dem kann ich nur zustimmen! Habe bei einem aktuellen Projekt recht viel mit RegEx zu tun (um bestimmte Werte aus einer 5MB Textdatei zu ziehen, die nicht so tolle strukturiert ist [je nachdem was ca. 500-600 Matches]) und da Fehler zu finden ist richtig nervig!! Die RegEx Zeilen sind mehrere Zeilen lang und mit den ganzen Escapesequenzen sieht man da praktisch nurnoch Backslashes, diverse Klammern und zig Sonderzeichen.

Keine passende Antwort gefunden?

Fragen Sie die Community