正则表达式出现的一个错误java.lang.IllegalStateException: No successful match so far
2016-09-07 14:02
691 查看
背景:
今天在写一个正则的时候,非常奇怪,Matcher的groupcount=2,但是当我去获取group(1)的时候,提示java.lang.IllegalStateException: No successful match so far。
然后我写了个java代码片段测试,果然也是报错,排除了是android的问题。
我猜是转义没处理好,我的正则里有“[图片]”这个标签,[符号我已经转义为\[,但是]符没有转义,改掉后发现果然正常了,顺便整理下正则中需要转义的字符。
正则需要转义字符:'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|'
我的正则"\\[图片]"改为"\\[图片\\]"即可解决以上问题
其他几个报错java.util.regex.PatternSyntaxException: Dangling meta. character ‘*’ near index 0
解决://转义
java.util.regex.PatternSyntaxException: Illegal repetition near
估计[]边界有问题。
/** * 转义正则特殊字符 * @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; }
相关文章推荐
- 访问tomcat出现java.lang.IllegalStateException No output folder错误解决方法
- java中用正则表达式获取一个指定的子字符在字符串中出现的指定次数的下标索引,并且进行字符串分割
- 关于Recyclerview使用时的一个错误java.lang.NoSuchMethodError: No static method getMatrix(Landroid/view/View;)
- 访问tomcat出现java.lang.IllegalStateException: No output folder错误解决方法
- 出现java.lang.IllegalArgumentException: No configs match configSpec
- mybatis出现There is no getter for property named 'XXX' in 'class java.lang.String'错误
- 使用jutil测试程序出现错误java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=classestest]
- mybatis中出现There is no getter for property named 'depIds' in 'class java.lang.String'的错误
- 关于Recyclerview使用时的一个错误java.lang.NoSuchMethodError: No static method getMatrix(Landroid/view/View;)
- java 使用正则表达式统计一个字符串中子字符串出现次数
- java正则总是:java.lang.IllegalStateException: No match found 的分析解决
- 使用JNI时,出现了一个错误:java.lang.UnsatisfiedLinkError : dlopen failed: library //dlopen打开失败
- Android使用HttpClient时出现错误:java.lang.NoSuchFieldError: No static field INSTANCE
- 使用HBAdmin创建一个对象时出现java.lang.NoClassDefFoundError的错误
- 访问tomcat出现java.lang.IllegalStateException No output folder错误解决方法
- dom4j解析XML时出现"java.lang.noclassdeffounderror: org/jaxen/jaxenexception"错误
- .NET调用Java方法时出现的一个错误及其原因
- MAVEN2使用mvn install命令出现java.lang.OutOfMemoryError错误解决办法
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- Rational Rose出现java.lang.ClassNotFoundException错误的解决方法(转帖)