Hi ich habe eine Frage bezüglich der Regulären Ausdrücke...
Ich habe gestern fast 2 Std. mit der Suche nach einem Ausdruck bzw. versucht die Ausdrücke zu begreifen.
Also ich habe eine Gui und möchte eine Suchfunktion mit setRowFilter(RowFilter.regexFilter("AUSDRUCK"));
nutzen. Ich habe eine Textsuche über ein JTextField und zusätzlich eine Suche über eine JComboBox, die aus einer MySql Datenbank gefüllt wird (via DefaultComboBoxModel).. Als Hintergrundinformatioen.
Jetzt benötige ich einen Ausdruck (wenn beide Felder benutzt werden (JTextField und JComboBox) ) der nach beiden "Wörtern" bzw. Strings (Zahlen, Wörter, Sonderzeichen etc. (aber nicht nur übereinstimmungen auch unvollständige Wörter... tes (test))) sucht. Und mir nur die Datensätze anzeigt wenn der Inhalt beider Felder gefunden wurde.
Hier der Code zu meiner Methode die die aufgerufen wird wenn eines der beiden oder beide Felder gefüllt sind.
Die letzt IF Abfrage macht mir Probleme. Ich bekomme das einfach nicht gebacken. Alternativ könnte ich auch die Datenbank "Fragen" und jedesmal eine dynamisch generierten SQL Query abschicken aber ich finde da die Daten sowieso in Form einer DefaultTableModel vorliegen schwachsinn die DB damit zu "belästigen"
Ich hoffe jemand hat eine Idee oder einen Tipp wie der Ausdruck auszusehen hat. Die ersten drei IF Abfragen bzw die Ausdrücke funzen 1A...
Danke Goodcat
Ich habe gestern fast 2 Std. mit der Suche nach einem Ausdruck bzw. versucht die Ausdrücke zu begreifen.
Also ich habe eine Gui und möchte eine Suchfunktion mit setRowFilter(RowFilter.regexFilter("AUSDRUCK"));
nutzen. Ich habe eine Textsuche über ein JTextField und zusätzlich eine Suche über eine JComboBox, die aus einer MySql Datenbank gefüllt wird (via DefaultComboBoxModel).. Als Hintergrundinformatioen.
Jetzt benötige ich einen Ausdruck (wenn beide Felder benutzt werden (JTextField und JComboBox) ) der nach beiden "Wörtern" bzw. Strings (Zahlen, Wörter, Sonderzeichen etc. (aber nicht nur übereinstimmungen auch unvollständige Wörter... tes (test))) sucht. Und mir nur die Datensätze anzeigt wenn der Inhalt beider Felder gefunden wurde.
Hier der Code zu meiner Methode die die aufgerufen wird wenn eines der beiden oder beide Felder gefüllt sind.
Java:
private void setFilter() {
if ( this.searchPhrase.isEmpty() && this.searchCustomer.isEmpty() ) {
sorter.setRowFilter(RowFilter.regexFilter("."));
}
if ( !this.searchPhrase.isEmpty() && this.searchCustomer.isEmpty()) {
sorter.setRowFilter(RowFilter.regexFilter("(?i)^.*" + this.searchPhrase + ".*"));
}
if ( this.searchPhrase.isEmpty() && !this.searchCustomer.isEmpty()) {
sorter.setRowFilter(RowFilter.regexFilter("(?i)^.*" + this.searchCustomer + ".*"));
}
if ( !this.searchPhrase.isEmpty() && !this.searchCustomer.isEmpty()) {
sorter.setRowFilter(RowFilter.regexFilter(".[*((?i)^.*" + this.searchPhrase + ".*)].*.[((?i)^.*" + this.searchCustomer + ".*)]*"));
}
Die letzt IF Abfrage macht mir Probleme. Ich bekomme das einfach nicht gebacken. Alternativ könnte ich auch die Datenbank "Fragen" und jedesmal eine dynamisch generierten SQL Query abschicken aber ich finde da die Daten sowieso in Form einer DefaultTableModel vorliegen schwachsinn die DB damit zu "belästigen"
Ich hoffe jemand hat eine Idee oder einen Tipp wie der Ausdruck auszusehen hat. Die ersten drei IF Abfragen bzw die Ausdrücke funzen 1A...
Danke Goodcat