Regex vereinfachen

Started by TSCoach, July 03, 2014, 04:11:10 PM

Previous topic - Next topic

TSCoach

Hallo Stefan,

Ich mache gerade die Oberfläche für die BadWord Funktionen und möchte hier eine kleine Hilfestellung für die User bieten, indem ich keine regular Expressions direkt eingeben lasse, sondern ein Textfeld und ein Dropdown mit verschiedenen Auswahlmöglichkeiten.

Hätte mir sowas vorgestellt wie:


  • enhält Wort
  • enthält eines der Zeichen
  • enthält alle Zeichen
  • beginnt mit
  • endet mit
  • ...

Nach dem Abschicken des Formulars wandle ich die Eingabe dann in eine Java regex um.

Leider bin ich mit regex noch nicht so viel in Kontakt gewesen und müsste länger suchen.

Wenn du das gerade aktuell im Kopf hast, wäre es nett, wenn du mir die dazuschreiben könntest. Wenn du selbst suchen müsstest, dann mach ich das natürlich :-)

Was hältst du außerdem von der Idee?

mfg Thomas

Stefan1200

So gut bin ich in Regex auch nicht, aber ich wollte den Anwendern ein mächtiges Werkzeug in die Hand geben. Weitere Infos gibt es hier: http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html

Aber drei der Dinge lassen sich sehr einfach realisieren, Beispielbegriff ist Affe:
Beginnt mit: Affe.*
Endet mit: .*Affe
Enthält Wort: .*Affe.*

Wichtig ist nur zu wissen, das Klammern und Sonderzeichen meistens escaped werden müssen, damit Regex dies auch als Suchbegriff verwendet. Nur Zahlen und Buchstaben können einfach so verwendet werden.

Gerade für nicht Regex Kenner würde es das stark vereinfachen.

TSCoach

Danke für die schnelle Hilfe.

Ich werde mal einen Helper schreiben, der ein Objekt mit einem String und einer "Regex-Definition" in einen Regex-String umwandelt. Erstmal mit den Möglichkeiten. Das kann man ja dann später erweitern, bzw. könnte man auch eine Option namens "Regex" mit rein nehmen, die dann nichts macht mit dem String und somit haben fortgeschrittene User auch wieder die volle Funktionalität.

Auch bei den anderne Einstellungen habe ich mir viele Gedanken gemacht und versuche alle möglichst einfach zu halten. Beispielsweise habe ich die "only/ignore" selects fast überall entfernt und immer einen "select all" und "deselect all" button gemacht. Damit wählt der User immer die Gruppen, oder Channels die er haben will.

Ich weis ich bin dir noch ein Video, oder Bilder schuldig, aber das Ganze ist viel aufwändiger als ich dachte :-) Ich sollte aber hoffentlich nächste Woche fertig werden.

mfg Thomas

Stefan1200

Quote from: TSCoach on July 03, 2014, 05:56:06 PM
Ich weis ich bin dir noch ein Video, oder Bilder schuldig, aber das Ganze ist viel aufwändiger als ich dachte :-) Ich sollte aber hoffentlich nächste Woche fertig werden.

Du willst gar nicht wissen wie viele Stunden (oder sollte ich sagen Monate) in dem Bot Web Interface von mir drin stecken. :)

TSCoach

So viel ist es auch wieder nicht :-)

Ich mache ja das ganze Webinterface neu.

Außer dem Bot Funktionen sind auch noch diverse Zahlungsweisen, Teamspeak Server Steuerung, Rechnungswesen, Domainverwaltung, Steuerung des DNS und TSDNS Servers, Backup Funktionen, ein paar neue Tricks gegen DDOS, usw. drin.

Der Bot Teil hat bis jetzt ca 50-60 Stunden verschlungen. Ich hatte eher mit 20-30 gerechnet :-)

Der Großteil war die Grundlage, damit der Bot alles aus der Datenbank in vernünftig verwertbare Objekte lädt und jetzt ist die Oberflächen Anpassung noch etwas Aufwand, damit sich auch alle zurechtfinden...

mfg Thomas