[英]Java swing JTable RowFilter ignoring symbols
这是我用于过滤JTable
代码。 'text'
是要在表中搜索的输入文本。
getSorter().setRowFilter(RowFilter.regexFilter("(?i)" + Pattern.quote(text)));
这里的过滤不区分大小写。 我如何在过滤期间忽略某些符号,例如- ( ) +
,例如+ 88-11和8811在过滤期间应该匹配。
创建RowFilter
的自定义实现。 在include方法中:
replaceAll()
方法以删除要排除的特殊字符。 我假设您将能够采用以下模式(完全满足您的标准)来满足您的要求:
String pattern = "([\\Q+-*/\\E]?+\\d+)+"
简单输入:
+25+36
25+36*36
2536
与其他类似,这将导致一场比赛。
工作方式:
[\\\\Q+-*/\\\\E]
要匹配+, -, *, /
中的任何一个+, -, *, /
然后将?+
作为量词: X?+
表示X
一次出现或根本不出现。 \\\\d+
是与一位或多位数字匹配的模式 X = [\\\\Q+-*/\\\\E]?+\\\\d+
, (X)
:将X
匹配为捕获组,而(X)+
表示该组至少出现一次或多次。 查看Pattern类文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.