zoukankan      html  css  js  c++  java
  • 字符串replaceAll()方法报错:java.util.regex.PatternSyntaxException:Unclosed group near index...

    Unclosed group near index错误

    之前自己写的一个模块在项目上线后最近频频出现tomcat崩掉的情况,从log看出现如下的报错信息:

    java.util.regex.PatternSyntaxException: Unclosed group near index 85
    \u521B\u4E1A\u5927\u53A6(\u6D59\u6C5F\u897F\u6EAA\u6821\u533A\u65C1\uFF09
    at java.util.regex.Pattern.error(Pattern.java:1955)
    ......

    从报错信息可以看出是正则出问题了,具体什么问题通过搜索发现是如下原因导致的:

    在正则表达式中,有个“捕获组”的概念,其使用了小括号;因此分析,当正则表达式解析到左括号时,没有发现对应的右括号,从而报错。

      如上报错信息中的红色左括号,就是导致问题的地方,右括号是红色的对应的unicode编码(\uFF09),这种情况也是没有预料到的,对于这个我的解决的办法就是把左括号替换成对应的unicode编码,或者直接替换成空字符串、成对的左右括号都是可以的,具体看情况而言。

      而且对于中括号[],也存在同样的问题,需要注意。

    正则中的转意符""在Java语言中的表示

      因为""在正则表达式中是转意符,在需要描述一个已经被正则表达式使用的特殊字符(即元字符,如^、$、*、+、?等)时,使用""将其转变为原本的意思,如果要表示反斜杠本身,如果是写成正则表达式,在需要写成"\\",如果是普通字符串,写成"\"即可。

    ...希望今天搬砖是顺利的一天...^_^

    参考文献:https://blog.csdn.net/wangjunjun2008/article/details/39479423

  • 相关阅读:
    ibatis $与#的区别
    (转载)Hibernate与Jpa的关系
    tomcat web工程 jar包冲突解决方法
    jquery 获取checkbox 选中值并拼接字符集
    mysql BLOB字段转String的方法
    Ajax工作原理
    Spring mvc 具体RequestMapping 参数含义
    覆盖bootstrap的样式
    开园啦,致曾经现在以后的自己~
    SimpleDateFormat 常规用法
  • 原文地址:https://www.cnblogs.com/volcano-liu/p/9143340.html
Copyright © 2011-2022 走看看