6
内の行の一部を使用してデータを検索するためのJavaを使用して、私は、この表Microsoft Accessデータベース
そして、私はすべてを返す私のテーブル からデータを取得するには、次のコードを使用していますがありますそのクルド語だから、それが正常に動作しますبةرز
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"));
}
}
}
含まれている英語の単語は、それは私が望むすべての英語の単語を印刷します。
私の問題は、対応するクルド語を取得すると、完全なセルを印刷しないということです。それだけでプリントبةرز、
は、例えば、前のコードの出力は次のようになります。
aesthete
بةرز ، جوانىثةرست
aether
زوَر ناسك ، بةرز ، ثيروَز ، ئاسمانى
affair
بةرز
しかし、それは
aesthete
بةرز
aether
بةرز
affair
بةرز
を印刷し、私は私が欲しいの出力を得るために何ができますか?私は、データベース接続のためのUCanAccess
を使用しています
注意、すべてのための
内のいくつかの変更と、それを解決しました3.0.2。サンプルデータをコピーしてAccessテーブルに貼り付け、コードをコピーしてEclipseプロジェクトに貼り付けました。私がそれを実行するときに一致する唯一の行は "事件"です。 –
ビデオで問題を記録し、YouTubeにアップロードしたいですか? –
あなたの正規表現は何をする予定ですか? '[。 ] * [:,,] + [] * 'あなたにどういう意味ですか?私にとって、 ':'、 '、'、 '、'の文字列の前に空白やピリオドが続くか、スペースの後に続くことを意味します。アンカー '^'と組み合わせると他のテキストは許可されないので、最初の2つの赤い円の前のものとはまったく一致しません。 ---また、表示されているデータに大文字で始まる「Affair」があり、出力に小文字で始まるものがあるため、あなたは*その*データを読み込んでいません。 – Andreas