如何在JTable中过滤不区分大小写的内容

时间:2013-11-10 17:08:21

标签: java regex swing tablerowsorter

我尝试使用以下代码过滤我的JTable:

String eingabe = eingabeF.getText();
RowFilter.regexFilter(".*" + eingabe + ".*", 1)

效果很好。但我想过滤它不区分大小写。我的列“1”中的所有值在开头都有大写字母。

我试过了:

String eingabe = eingabeF.getText();
setRowFilter(RowFilter.regexFilter(("?i") + Pattern.quote(".*" + eingabe + ".*"), 1));

但我总是收到以下错误消息:

Exception in thread "AWT-EventQueue-3" java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0
?i\Q.*f.*\E

1 个答案:

答案 0 :(得分:0)

首先,嵌入的不区分大小写的标志是"(?i)",而不是("?i")。其次,您不需要在字符串周围添加".*"。只要您没有使用"^""$"将其包围,匹配器就会在该字段内的任何位置找到它。初始化过滤器要简单得多,如下所示:

RowFilter.regexFilter("(?i)" + eingabe, 1);