繁体   English   中英

Java Swing JTable RowFilter忽略符号

[英]Java swing JTable RowFilter ignoring symbols

这是我用于过滤JTable代码。 'text'是要在表中搜索的输入文本。

getSorter().setRowFilter(RowFilter.regexFilter("(?i)" + Pattern.quote(text)));

这里的过滤不区分大小写。 我如何在过滤期间忽略某些符号,例如- ( ) + ,例如+ 88-11和8811在过滤期间应该匹配。

创建RowFilter的自定义实现。 在include方法中:

  • 在字符串上调用replaceAll()方法以删除要排除的特殊字符。
  • 然后搜索与您的搜索模式匹配的内容。
  • 根据是否匹配返回true / false。

我假设您将能够采用以下模式(完全满足您的标准)来满足您的要求:

String pattern = "([\\Q+-*/\\E]?+\\d+)+"

简单输入:

+25+36
25+36*36
2536

与其他类似,这将导致一场比赛。

工作方式:

  1. [\\\\Q+-*/\\\\E]要匹配+, -, *, /中的任何一个+, -, *, /然后将?+作为量词: X?+表示X一次出现或根本不出现。
  2. \\\\d+是与一位或多位数字匹配的模式
  3. 并让X = [\\\\Q+-*/\\\\E]?+\\\\d+(X) :将X匹配为捕获组,而(X)+表示该组至少出现一次或多次。

查看Pattern类文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM