Regular Expression in Datenbank mit Usereingabe vergleichen
Verfasst: 9. März 2009 17:49
Hallo!
Ich bin gerade dabei, in QT und C++ einen Chatbot, der auf Regular Expressions basiert, zu schreiben. Ich weiß, so etwas gibt es natürlich schon und ich programmiere damit nichts bahnbrechend neues, aber es ist ein Projekt für mich zum Lernen und dafür konnte es bisher (schreibe seit etwa 3 Wochen bis jetzt) auch ganz gut dienen. Bisher hat der Chatbot die Regular Expressions und die zugeordneten Ausgaben aus Dateien bezogen. Jetzt wollte ich jedoch das ganze System auf eine Datenbank umstellen, wo alles in Feldern in der Datenbank gespeichert ist. Dies macht nämlich die Verarbeitung leichter und unkomplizierter, weil ich erstens auf das Tag-System wie "<trigger>irgendeine RegEx</trigger><output>Hallo
</output>" verzichten kann und zweitens nicht wirklich jede Datei Zeile für Zeile durchgegangen werden muss bei der Ausgabe, was bei vielen Dateien ja sehr, sehr langsam wäre. Also, beste Lösung: Datenbank.
Ich habe spontan mal die sqlite-Datenbank genommen, weil Sie für meine einfachen Zwecke reicht. Nun würde ich gerne die Usereingabe mit dem Reg-Ex in der Datenbank vergleichen und da liegt mein Problem. Ich habe absolut keine Ahnung, wie ich das anstellen soll. Klar, normalerweise funktioniert "WHERE", aber das wird hier ja wohl kaum klappen... Hat jemand eine Idee, wie ich das jetzt am besten lösen kann? Ich habe mal was von "RLIKE" gelesen, aber konnte nicht wirklich eine ausführliche Dokumentation dazu finden. In den Docs zu QT auf Trolltech habe ich leider auch nichts finden können...
Ich wäre für Hilfe echt sehr dankbar!
Liebe Grüße und schon mal danke für die Mühe im Voraus,
Jonathan
Ich bin gerade dabei, in QT und C++ einen Chatbot, der auf Regular Expressions basiert, zu schreiben. Ich weiß, so etwas gibt es natürlich schon und ich programmiere damit nichts bahnbrechend neues, aber es ist ein Projekt für mich zum Lernen und dafür konnte es bisher (schreibe seit etwa 3 Wochen bis jetzt) auch ganz gut dienen. Bisher hat der Chatbot die Regular Expressions und die zugeordneten Ausgaben aus Dateien bezogen. Jetzt wollte ich jedoch das ganze System auf eine Datenbank umstellen, wo alles in Feldern in der Datenbank gespeichert ist. Dies macht nämlich die Verarbeitung leichter und unkomplizierter, weil ich erstens auf das Tag-System wie "<trigger>irgendeine RegEx</trigger><output>Hallo
Ich habe spontan mal die sqlite-Datenbank genommen, weil Sie für meine einfachen Zwecke reicht. Nun würde ich gerne die Usereingabe mit dem Reg-Ex in der Datenbank vergleichen und da liegt mein Problem. Ich habe absolut keine Ahnung, wie ich das anstellen soll. Klar, normalerweise funktioniert "WHERE", aber das wird hier ja wohl kaum klappen... Hat jemand eine Idee, wie ich das jetzt am besten lösen kann? Ich habe mal was von "RLIKE" gelesen, aber konnte nicht wirklich eine ausführliche Dokumentation dazu finden. In den Docs zu QT auf Trolltech habe ich leider auch nichts finden können...
Ich wäre für Hilfe echt sehr dankbar!
Liebe Grüße und schon mal danke für die Mühe im Voraus,
Jonathan