正則需要轉義字符
'$', '(', ')', '*', '+', '.', '[', ']', '?', '//', '^', '{', '}', '|'
異常現象:
java.util.regex.PatternSyntaxException: Dangling meta. character '*' near index 0
解決方法
對特殊字符加//轉義即可。
注意:雖然使用[]在部分條件下也可以,但是在對于(、[、{范圍邊界開始符不匹配的情況下會報如下:
異常現象
java.util.regex.PatternSyntaxException: Illegal repetition near index 50
Java過濾正則表達式特殊字代碼如下(注意://需要第一個替換,否則replace方法替換時會有邏輯bug)
/** * 轉義正則特殊字符 ($()*+.[]?/^{},|) * * @param keyword * @return */public static String escapeExprSpecialWord(String keyword) { if (StringUtils.isNotBlank(keyword)) { String[] fbsArr = { "http://", "$", "(", ")", "*", "+", ".", "[", "]", "?", "^", "{", "}", "|" }; for (String key : fbsArr) { if (keyword.contains(key)) { keyword = keyword.replace(key, "http://" + key); } } } return keyword;}總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答