Простой способ избежать классов символов регулярных выражений в произвольной строке? - PullRequest
2 голосов
/ 04 ноября 2010

RowFilter.regexFilter кажется простым способом фильтрации моего JTable.

Я хотел бы позволить людям вводить фильтры в графическом интерфейсе, которые представляют собой простой текст (т.е. не выражения регулярных выражений), а затемфильтр на их основе.Например:

RowFilter<TableModel, Object> filter = RowFilter.regexFilter(".*" + pUserFilterString + ".*", pColumn);

Было бы замечательно, если бы пользователь аккуратно процитировал свой текст фильтра, чтобы сделать его действительным регулярным выражением, но он не будет думать о регулярных выражениях - просто текст.Если бы существовал простой способ сделать это, я хотел бы избежать чего-либо в их String, которое бы не обрабатывалось буквально парсером регулярных выражений (например, "*" -> "\ *").

Isэто возможно / стоит или я должен идти другим путем с моим кодом?

1 Ответ

4 голосов
/ 04 ноября 2010

Эта операция называется цитированием.Вы можете получить экранированную строку, вызвав ...

String escapedString = Pattern.quote(inputString);
...