Java swing JTable行筛选器忽略符号

Java swing JTable行筛选器忽略符号,java,regex,swing,jtable,rowfilter,Java,Regex,Swing,Jtable,Rowfilter,这是我过滤JTable的代码“文本”是要在表中搜索的输入文本 getSorter().setRowFilter(RowFilter.regexFilter("(?i)" + Pattern.quote(text))); 这里的过滤不区分大小写。如何在筛选过程中忽略某些符号,如-()+,如在筛选过程中应匹配的+88-11和8811。创建行筛选器的自定义实现。在该方法中,包括: 对字符串调用replaceAll()方法以删除要排除的特殊字符 然后搜索与您的搜索模式匹配的内容 根据是否匹配返回真/

这是我过滤
JTable
的代码<代码>“文本”是要在表中搜索的输入文本

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

这里的过滤不区分大小写。如何在筛选过程中忽略某些符号,如
-()+
,如在筛选过程中应匹配的+88-11和8811。

创建
行筛选器的自定义实现。在该方法中,包括:

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

创建
行筛选器的自定义实现。在该方法中,包括:

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

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

String pattern = "([\\Q+-*/\\E]?+\\d+)+"
简单输入:

+25+36
25+36*36
2536
和另一个相似,结果正好是一场比赛

工作方式:

  • [\\Q+-*/\\E]
    是匹配
    +,-,*,/
    中的任何一个,并且
    ?+
    作为量词放在后面:a
    X?+
    表示
    X
    发生一次或根本不发生
  • \\d+
    是一种与一个或多个数字匹配的模式
  • X=[\\Q+-*/\\E]?+\\d+
    (X)
    :将
    X
    匹配为捕获组,并且
    (X)+
    意味着该组将至少出现一次或多次

  • 看看这本书

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

    String pattern = "([\\Q+-*/\\E]?+\\d+)+"
    
    简单输入:

    +25+36
    25+36*36
    2536
    
    和另一个相似,结果正好是一场比赛

    工作方式:

  • [\\Q+-*/\\E]
    是匹配
    +,-,*,/
    中的任何一个,并且
    ?+
    作为量词放在后面:a
    X?+
    表示
    X
    发生一次或根本不发生
  • \\d+
    是一种与一个或多个数字匹配的模式
  • X=[\\Q+-*/\\E]?+\\d+
    (X)
    :将
    X
    匹配为捕获组,并且
    (X)+
    意味着该组将至少出现一次或多次
  • 看看这本书