以下是我过滤JTable
的代码。 'text'
是要在表格中搜索的输入文本。
getSorter().setRowFilter(RowFilter.regexFilter("(?i)" + Pattern.quote(text)));
此处过滤不区分大小写。如何在过滤过程中忽略像- ( ) +
这样的某些符号,例如+ 88-11&过滤期间8811应该匹配。
答案 0 :(得分:1)
创建RowFilter
的自定义实现。在include方法中:
replaceAll()
方法以删除要排除的特殊字符。 答案 1 :(得分:0)
我假设您将能够采用以下模式(完全符合您的标准)到您所需的模式:
String pattern = "([\\Q+-*/\\E]?+\\d+)+"
简单输入:
+25+36
25+36*36
2536
和其他类似的一样,这将导致一场比赛。
工作方式:
[\\Q+-*/\\E]
要匹配+, -, *, /
中的任何一个,?+
之后会将其作为量词:X?+
表示X
出现一次或不出现所有。 \\d+
是一种匹配一个或多个数字X = [\\Q+-*/\\E]?+\\d+
,(X)
:匹配X
作为捕获组,(X)+
表示该组至少会出现一次或多次。