Ich habe diese Tabellejava Verwendung für Suche nach Daten von einem Teil der Reihe in Microsoft Access-Datenbank mit
Und ich bin mit dem folgenden Code Daten aus meiner Tabelle abzurufen , die alle kehrt die englische Wörter, die ihre kurdische Wort enthält بةرز
targetText="بةرز";
try (PreparedStatement ps = conn.prepareStatement(
"SELECT English,Kurdish FROM Info " +
"WHERE Kurdish = ? " +
"OR REGEXP_MATCHES(Kurdish, ?) " +
"OR REGEXP_MATCHES(Kurdish, ?) " +
"OR REGEXP_MATCHES(Kurdish, ?) ")) {
ps.setString(1, targetText);
ps.setString(2, "^[. ]*" + targetText+ "[ ]*[:،,]+[ .]*$");
ps.setString(3, "^[. ]*[:،,]+[ ]*" + targetText+ "[. ]*$");
ps.setString(4, "^[. ]*[:،,]+[ ]*" + targetText+ "[ ]*[:،,]+[ .]*$");
try (ResultSet rSet = ps.executeQuery()) {
while (rSet.next()) {
System.out.println(rSet.getString("English"));
System.out.println(rSet.getString("Kurdish"));
}
}
}
So funktioniert es gut, er druckt alle englischen Wörter, die ich will.
Mein Problem ist, dass wenn ich das entsprechende kurdische Wort bekomme, es nicht die komplette Zelle ausdruckt. Es ist einfach druckt بةرز,
Zum Beispiel sollte der Ausgang des vorherigen Code sein:
aesthete
بةرز ، جوانىثةرست
aether
زوَر ناسك ، بةرز ، ثيروَز ، ئاسمانى
affair
بةرز
Aber es druckt
aesthete
بةرز
aether
بةرز
affair
بةرز
Was kann ich die Ausgabe, die ich zu bekommen?
Bitte beachte, dass ich UCanAccess
für meine Datenbank-Verbindung verwende,
Ich bin nicht in der Lage das Problem neu erstellen UCanAccess mit 3.0.2. Ich habe Ihre Beispieldaten in eine Access-Tabelle kopiert und eingefügt und Ihren Code in ein Eclipse-Projekt kopiert und eingefügt. Wenn ich es laufe, ist die einzige Zeile, die passt, "Affäre". –
willst du, dass ich mein Problem mit Video aufzeichne und es auf YouTube hochlade? –
Was sollen deine Regex tun? Was bedeutet '[. ] * [: ,,] + [] * 'dir bedeuten? Für mich bedeutet das eine Abfolge von ':', ',', oder ',' Zeichen, denen optional Leerzeichen oder Punkte vorausgehen und/oder gefolgt von Leerzeichen. Kombiniert mit dem Anker '^' bedeutet dies, dass kein anderer Text erlaubt ist, also wird er definitiv nicht mit dem übereinstimmen, was vor den ersten 2 roten Kreisen ist. --- Da die angezeigten Daten, Affair 'mit Großbuchstaben beginnen und Ihre Ausgabe mit Kleinbuchstaben beginnt, lesen Sie * diese * Daten nicht *. – Andreas