Java 如何为6、6.6和6.6.6等过滤器定义正则表达式?

Java 如何为6、6.6和6.6.6等过滤器定义正则表达式?,java,sql,Java,Sql,我需要保存一个触发SQL查询的遗留应用程序,以搜索存储在不同位置(即站点、插槽和子批次)的项。当前查询将“AND(…)”部分附加到主查询,以便动态构建更严格的搜索条件 当第一个if返回true时(意味着用户在桌面应用程序的字段中键入某个内容并按Enter键),我需要检查jTextFieldPCA的数据是否符合任何内部条件。数据的值通常是一个一位数,但也可以是一个字母 我尝试的正则表达式就是这些,但我遗漏了一些东西。如何确保值6落在第一个内部条件上,值6.6落在第二个内部条件上,值6.6.6被第三

我需要保存一个触发SQL查询的遗留应用程序,以搜索存储在不同位置(即站点、插槽和子批次)的项。当前查询将“AND(…)”部分附加到主查询,以便动态构建更严格的搜索条件

当第一个if返回true时(意味着用户在桌面应用程序的字段中键入某个内容并按Enter键),我需要检查jTextFieldPCA的数据是否符合任何内部条件。数据的值通常是一个一位数,但也可以是一个字母

我尝试的正则表达式就是这些,但我遗漏了一些东西。如何确保值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 ");
            }
(...)
提前感谢,


gtludwig

在点字符之前添加反斜杠

jTextFieldPCA.getText().matches("[A-Za-z0-9]" + "\\." + "[A-Za-z0-9]")

在点字符之前添加反斜杠

jTextFieldPCA.getText().matches("[A-Za-z0-9]" + "\\." + "[A-Za-z0-9]")

点是正则表达式中的一个特殊字符(它表示任何数字),您需要对其进行转义

 "[A-Za-z0-9]" + "\\." + "[A-Za-z0-9]"

查看预定义字符类部分,该点是正则表达式中的一个特殊字符(它表示任意数字),您需要对其进行转义

 "[A-Za-z0-9]" + "\\." + "[A-Za-z0-9]"
查看预定义字符类部分