在java使用正则表达式中,有些字符需要用转义字符才能被识别出来,他们分别是:
'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|'
对于以上字符需要在前面加上\\来转义。
在这里提供一个方法来对特殊字符进行批量处理
- /**
- * 转义正则特殊字符 ($()*+.[]?\^{},|)
- *
- * @param keyword
- * @return
- */
- public static String escapeExprSpecialWord(String keyword) {
- if (StringUtils.isNotBlank(keyword)) {
- String[] fbsArr = { "\\", "$", "(", ")", "*", "+", ".", "[", "]", "?", "^", "{", "}", "|" };
- for (String key : fbsArr) {
- if (keyword.contains(key)) {
- keyword = keyword.replace(key, "\\" + key);
- }
- }
- }
- return keyword;
- }