java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
使用repalceAll 方法出现java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0异常
代码如下:
@Test
public void testReplaceAll(){
String sql = "select * from per_handle where id not in('3ce7405509414105a65e7456987e7393')";
String countSql = sql.replaceAll("*", " count(*) "); System.out.println(countSql);
}
以junit测试方式运行后报了如下错误:
java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
出现这个错误与repalceAll方法有关,查阅java API文档可以看到 replaceAll方法结构如下:
String java.lang.String.replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
第一个参数是一个正则表达式,第二个参数为替换后的字符串。
由于"*"在正则表达式中有特殊意义,导致报错。
尝试了两种解决方法:
1、对"*"进行转义处理,使之成为一个普通字符
@Test
public void testReplaceAll(){
String sql = "select * from per_handle where id not in('3ce7405509414105a65e7456987e7393')";
String countSql = sql.replaceAll("\\*", " count(*) ");
System.out.println(countSql);
}
2、使用replace方法代替replaceAll方法
@Test
public void testReplaceAll(){
String sql = "select * from per_handle where id not in('3ce7405509414105a65e7456987e7393')";
String countSql = sql.replace("*", " count(*) ");
System.out.println(countSql);
}
这种方法能够成功的原因是:
String java.lang.String.replace(CharSequence target, CharSequence replacement)
replace方法的第一参数为字符或字符串,所以默认会将"*"当成普通字符串。
java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0的更多相关文章
- java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0 *&* 解决方法
java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0*&*^ at java. ...
- java开发过程中,报错Dangling meta character '*' near index 0,解决办法
1.split方法转化字符串为数组: String[] strPicArr = map.get("hw_pic").toString().split("*"); ...
- java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^
1 String a = "1991\12\16"; 2 String[] split = a.split("\\"); 3 System.out.printl ...
- Dangling meta character '' near index 0
1.replaceAll()方法报错 对字符串使用replaceAll()方法替换 * ? + / | 等字符的时候会报以下异常 Dangling meta character '*' near in ...
- java.util.regex.PatternSyntaxException, dangling metacharacter “?” 解决方法
今天在用正则表达式的时候遇到这样一个异常 看了相关资料后发现这是因为在正则表达式中,像"?","*","\"都是保留字符,所以在用的时候需要 ...
- 我的Android进阶之旅------>解决错误: java.util.regex.PatternSyntaxException: Incorrect Unicode property
1.错误描述 今天使用正则表达式验证密码的时候,报了错误 java.util.regex.PatternSyntaxException: Incorrect Unicode property near ...
- Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 0 [ ^
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character clas ...
- java.util.regex.PatternSyntaxException: Unclosed character class near index解决办法
使用str.split("[")时,出现java.util.regex.PatternSyntaxException: Unclosed character class near ...
- Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 0 解决方法: 要对切割字符进行转义\\
使用str.split("[",15)时,出现Exception in thread "main" java.util.regex.PatternSyntaxE ...
随机推荐
- jQuery的一些笔记
1.区别jQuery对象和DOM对象. var text1=document.getElementByTagName("div") var $text2=$("div&q ...
- Software Development Principle
Every great piece of software begins with customer's big idea. As a professional softeware developer ...
- 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器
最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...
- stanford NLP学习笔记3:最小编辑距离(Minimum Edit Distance)
I. 最小编辑距离的定义 最小编辑距离旨在定义两个字符串之间的相似度(word similarity).定义相似度可以用于拼写纠错,计算生物学上的序列比对,机器翻译,信息提取,语音识别等. 编辑距离就 ...
- VisualStudio2010正则表达式查找和替换
把 TRACE(_T("something etc."); 替换为 TRACE(_T("something etc."));查找内容:表达式:TRACE\(_T ...
- Erlang初学
这篇文章主要介绍了Erlang初学:Erlang的一些特点和个人理解总结,本文总结了函数式编程.一切都是常量.轻量进程.进程端口映射及典型缺点等内容,需要的朋友可以参考下 我对 Erlang 编程理念 ...
- [转]jquery getJSON 数据联动(采用序列化和反序列化获取数据) .
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> ...
- Java:国际化
Java的国际化: 资源文件的命名可以有如下三种形式:baseName _ language _country.properties baseName _language.properties bas ...
- kettle输入“去除空格类型”设置不上
kettle输入“去除空格类型”设置不上,设置完了还是现实“none”的办法: 在xml中直接将对应处“none”改为“both”,即“去掉两边空格”. 原文来自:http://blog.csdn.n ...
- AX7: HOW TO USE TABLE METHOD EXTENSION CLASS
To create new methods on a table without customize you should use the Table method extension class. ...