Java处理正则表达式特殊字符转义
2015-04-29 16:53
253 查看
正则需要转义字符:'$', '(',
')', '*', '+', '.', '[', ']', '?', '\\',
'^', '{', '}', '|'
异常现象: java.util.regex.PatternSyntaxException:
Dangling meta. character '*' near index 0
解决方法: 对特殊字符加\\转义即可。
注意:虽然使用[]在部分条件下也可以,但是在对于(、[、{范围边界开始符不匹配的情况下会报如下:
异常现象:java.util.regex.PatternSyntaxException: Illegal repetition near index 50
Java过滤正则表达式特殊字代码如下(注意:\\需要第一个替换,否则replace方法替换时会有逻辑bug)
')', '*', '+', '.', '[', ']', '?', '\\',
'^', '{', '}', '|'
异常现象: 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 = { "\\", "$", "(", ")", "*", "+", ".", "[", "]", "?", "^", "{", "}", "|" }; for (String key : fbsArr) { if (keyword.contains(key)) { keyword = keyword.replace(key, "\\" + key); } } } return keyword; }
相关文章推荐
- Java处理正则表达式特殊字符转义
- Java正则表达式特殊字符及其处理以及正则表达式详解
- Java处理特殊字符替换(正则表达式)
- Java处理正则表达式特殊字符转义
- Java正则表达式处理特殊字符转义的方法
- Java处理正则表达式特殊字符转义
- java 正则匹配 特殊字符 减号- 的情况,处理方式
- java 正则表达式高级篇(四种常用的处理方式:匹配 分割 替代 获取)
- Java中使用正则表达式处理文本数据
- JAVA正则表达式和特殊字符(没完全看懂ING)
- JAVA_正则表达式中\(反斜杠)处理
- Java通过正则表达式判断字符串当中是否有特殊符号
- 利用正则表达式获取特定文件(如java class)并对其进行处理(如代码统计)
- java 正则表达式 特殊构造(非捕获)理解 (1)
- Java过滤特殊字符的正则表达式
- 特殊字符导致用正则表达式进行字符串替换失败,Java replaceAll()方法报错Illegal group reference
- java用正则表达式过滤特殊字符
- 【Java】正则表达式对字符串的一些常用处理
- java正则表达式 过滤特殊字符的正则表达式
- java正则表达式 过滤特殊字符的正则表达式