我需要保留一个旧应用程序,该应用程序会触发SQL查询来搜索存储在不同位置(即桩号,槽位和子槽位)中的项目。当前查询在主查询后附加“ AND(...)”部分,因此它动态地建立了限制性更强的搜索条件。
当第一个if返回true(意味着用户在桌面应用程序的字段中键入了某些内容并按Enter)时,我需要检查jTextFieldPCA的数据是否属于任何内部条件。数据的值通常是一个数字,但也可以是字母。
我正在尝试的RegExes是这些,但是我缺少一些东西。如何确定第一个内部条件的值为6,第二个内部条件的值为6.6和第三个内部条件所捕获的值为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 ");
}
(...)
提前致谢,
格鲁德维格
最佳答案
在点字符之前添加反斜杠
jTextFieldPCA.getText().matches("[A-Za-z0-9]" + "\\." + "[A-Za-z0-9]")