在任意String中逃避正则表达式字符类的简单方法?

时间:2010-11-04 02:10:11

标签: java regex swing rowfilter

RowFilter.regexFilter似乎是一种过滤我的JTable的简单方法。

我想让人们在GUI中键入过滤器,这些过滤器是直接文本(即不是正则表达式),然后根据它们进行过滤。像这样:

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

如果用户仔细引用他的过滤器文本使其成为有效的正则表达式,这将是很好的,但他们不会考虑正则表达式 - 只是文本。如果有一种简单的方法可以做到这一点,我想在它们的字符串中转义任何不会被正则表达式解析器字面处理的东西(例如“*” - &gt;“\ *”)。

这可能/值得吗?或者我应该用我的代码向另一个方向发展?

1 个答案:

答案 0 :(得分:4)

此操作称为引用。您可以通过调用...来获取转义字符串。

String escapedString = Pattern.quote(inputString);