这是我的代码,用于过滤JTable
。 'text'
是在表格中搜索的输入文本。Java swing JTable RowFilter忽略符号
getSorter().setRowFilter(RowFilter.regexFilter("(?i)" + Pattern.quote(text)));
这里的过滤不区分大小写。如何在过滤期间忽略某些符号如- () +
,例如+ 88-11 & 8811应该在过滤期间匹配。
这是我的代码,用于过滤JTable
。 'text'
是在表格中搜索的输入文本。Java swing JTable RowFilter忽略符号
getSorter().setRowFilter(RowFilter.regexFilter("(?i)" + Pattern.quote(text)));
这里的过滤不区分大小写。如何在过滤期间忽略某些符号如- () +
,例如+ 88-11 & 8811应该在过滤期间匹配。
创建一个RowFilter
的自定义实现。在包含方法中:
replaceAll()
方法以删除要排除的特殊字符。我假设你将能够通过以下方式(完全满足您的条件)为您所需的模式:
String pattern = "([\\Q+-*/\\E]?+\\d+)+"
简单的输入:
+25+36
25+36*36
2536
和其他类似的,这将导致一场比赛。
它的工作方式:
[\\Q+-*/\\E]
是匹配和+, -, *, /
任何一个?+
放在事后作为量词:一个X?+
意味着X
出现一次或根本没有。\\d+
是匹配一个或多个数字X = [\\Q+-*/\\E]?+\\d+
,(X)
一个模式:匹配X
作为捕捉基和(X)+
指该基团会出现至少一次以上。