さまざまな場所 (つまり、ステーション、スロット、サブスロット) に格納されているアイテムを検索するために SQL クエリを起動するレガシー アプリケーションを維持する必要があります。現在のクエリでは、"AND (...)" セクションがメイン クエリに追加されているため、より限定的な検索条件が動的に作成されます。
最初のifが true を返した場合 (ユーザーがデスクトップ アプリケーションのフィールドに何かを入力して Enter キーを押したことを意味します)、jTextFieldPCA のデータが内部条件のいずれかに該当するかどうかを確認する必要があります。通常、データの値は 1 桁の数字ですが、文字の場合もあります。
私が試みている正規表現はこれらですが、何かが欠けています。最初の内部条件で 6 の値、2 番目の内部条件で 6.6 の値、3 番目の内部条件で 6.6.6 の値がキャプチャされるようにするにはどうすればよいですか?
if (jTextFieldPCA.getText().compareTo("") != 0) {
if (jTextFieldPCA.getText().matches("[A-Za-z0-9]") ) {
strBuilder.append(" AND CAST(complist.Station AS VARCHAR) LIKE ");
}
if (jTextFieldPCA.getText().matches("[A-Za-z0-9]" + "." + "[A-Za-z0-9]") ) {
strBuilder.append(" AND CAST(complist.Station AS VARCHAR) + '.' + CAST(complist.Slot AS VARCHAR) LIKE ");
}
if (jTextFieldPCA.getText().matches("[A-Za-z0-9]" + "." + "[A-Za-z0-9]" + "." + "[A-Za-z0-9]") ) {
strBuilder.append(" AND CAST(complist.Station AS VARCHAR) + '.' + CAST(complist.Slot AS VARCHAR) + '.' + CAST(complist.SubSlot AS VARCHAR) LIKE ");
}
(...)
前もって感謝します、
グルドヴィヒ