java rowfilter regex Locale - PullRequest
       29

java rowfilter regex Locale

0 голосов
/ 23 октября 2018

Я заполнил JTable и у меня есть нечувствительный к регистру фильтр строк:

RowFilter rf = RowFilter.regexFilter("(?i)"+filterText.getText(), 0);

Это прекрасно работает, пока не будут использованы локализованные буквы åäöÅÄÖ, введенные в JTextfield.Нечувствительность к регистру не работает с этими буквами.

Кто-нибудь знает, как заставить фильтр регулярных выражений работать с локализованными буквами?

1 Ответ

0 голосов
/ 23 октября 2018

Ответьте на мой комментарий:

Если вы пометите свой Pattern с параметром UNICODE_CASE вместе с опцией без учета регистра, вы должны получить требуемые результаты.

Поскольку это построенный шаблон, просто добавьте (?iu) вместо только (?i).

Для справки в документации говорится, что флаг UNICODE_CASE ...

Включает сведение регистров с учетом Unicode.

Если указан этот флаг, то сопоставление без учета регистра, если оно включено с помощью флага CASE_INSENSITIVE, выполняется в соответствии со стандартом Unicode.По умолчанию сопоставление без учета регистра предполагает, что сопоставляются только символы в кодировке US-ASCII.

Свертывание регистра с учетом Unicode также можно включить с помощью встроенного выражения флага (? U).

Указание этого флага может привести к снижению производительности.

...