我有一个填充的JTable
,并且具有不区分大小写的行过滤器:
RowFilter rf = RowFilter.regexFilter("(?i)"+filterText.getText(), 0);
这很好用,直到在JTextfield
中输入åäöÅÄÖ使用本地字母为止。不区分大小写不适用于这些字母。
有人知道如何使正则表达式过滤器与本地化字母一起工作吗?
答案 0 :(得分:1)
根据我的评论进行回答:
如果在不区分大小写的选项旁边加上UNICODE_CASE选项标记Pattern
,则应该获得所需的结果。
由于这是一种构造好的模式,因此只需在(?iu)
之前加上(?i)
。
作为参考,文档中标有UNICODE_CASE
标志...
启用可识别Unicode的大小写折叠。
如果指定了此标志,则不区分大小写的匹配 由CASE_INSENSITIVE标志启用的方式是一致的 Unicode标准。默认情况下,不区分大小写的匹配 假设只有US-ASCII字符集中的字符 匹配。
也可以通过内嵌的标记启用支持Unicode的大小写折叠 表达式(?u)。
指定此标志可能会导致性能下降。