Java處理正則表達式特殊字符轉(zhuǎn)義
來源:程序員人生 發(fā)布時間:2015-06-08 08:11:11 閱讀次數(shù):4076次
正則需要轉(zhuǎn)義字符:'$', '(',
')', '*', '+', '.', '[', ']', '?', '',
'^', '{', '}', '|'
異常現(xiàn)象: java.util.regex.PatternSyntaxException:
Dangling meta. character '*' near index 0
解決方法: 對特殊字符加轉(zhuǎn)義便可。
注意:雖然使用[]在部份條件下也能夠,但是在對(、[、{范圍邊界開始符不匹配的情況下會報以下:
異常現(xiàn)象:java.util.regex.PatternSyntaxException: Illegal repetition near index 50
Java過濾正則表達式特殊字代碼以下(注意:需要第1個替換,否則replace方法替換時會有邏輯bug)/**
* 轉(zhuǎn)義
正則特殊字符 ($()*+.[]?^{},|)
*
* @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;
}
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈