首页 > 编程语言 >java.lang.IllegalArgumentException: Illegal group reference

java.lang.IllegalArgumentException: Illegal group reference

时间:2023-04-20 13:06:25浏览次数:40  
标签:lang regex java String reference Illegal replaceAll replacement


评:

在使用String的replaceFirst(regex,replacement)的时候出现java.lang.IllegalArgumentException: Illegal group

原因是第一个参数支持正则表达式,replacement中出现“$”,会按照$1$2的分组模式进行匹配,当编译器发现“$”后跟的不是整数的时候,就会抛出“非法的组引用”的异常。所以我们在使用replaceAll(regex, replacement)函数的时候要特别小心。如果真的要把String中的字符替换成"$AAA"的话,可以对replacement 进行“$”的转义处理。

解决方法:

替换掉replacement里面的$字符: s=s.replaceAll("\\$", "\\\\\\$");

标签:lang,regex,java,String,reference,Illegal,replaceAll,replacement
From: https://blog.51cto.com/u_16080829/6209470

相关文章

  • JavaScript 九九乘法表
    方法一:观察规律:第一个数每行都是自增1。我们发下第二个数都是从1开始,依次递增1,永远不大于前面的数。前面数字每自增一次,后面数字自增一轮。我们可以用双重for循环,外层初始值设为i,i从1开始,到9结束,自增1内层从初始值设为j,j从1开始,小于等于外层的i,自增1九九乘法表代码如下:for......
  • JavaScript将时间戳转化为时间
    consttimestampToTime=(timestamp)=>{constdate=newDate(timestamp*1000);constyear=date.getFullYear();constmonth=(date.getMonth()+1).toString().padStart(2,'0');constday=date.getDate().toString().padStart(......
  • Java 的 SPI 机制
    什么是SPI机制?SPI机制(ServiceProviderInterface)是Java的一种服务发现机制,为了方便应用扩展。那什么是服务发现机制?简单来说,就是你定义了一个接口,但是不提供实现,接口实现由其他系统应用实现。你只需要提供一种可以找到其他系统提供的接口实现类的能力或者说机制.SPI机制在Java......
  • [JavaScript][页面定位]锚的简单使用
     [页面定位]锚的简单使用 1.使用window.location.hash定位到指定的锚1.<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">2.<HTML>3.<HEAD>4.<TITLE>NewDocument</TITLE>5.<METANAME="Generator"CONTENT=&q......
  • java导出Excel例子(poi)
    publicclasscreatFile{staticpublicvoidmain(String[]args)throwsException{FileOutputStreamfos=newFileOutputStream("d:\\creatFile.xls");HSSFWorkbookwb=newHSSFWorkbook();HSSFSheets=wb.createSh......
  • JPCAP——JAVA中的数据链路层控制(监听原理) ARP欺骗
    监听原理在详细说用JPCAP实现网络监听实现前,先简单介绍下监听的原理。局域网监听利用的是所谓的“ARP欺骗”技术。在以前曾经一段阶段,局域网的布局是使用总线式(或集线式)结构,要到达监听只需要将网卡设定为混杂模式即可,但现在的局域网络普遍采用的是交换式网络,所以单纯靠......
  • 【备忘录设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介备忘录模式(MementoPattern)是一种结构型设计模式。这种模式就是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并放在外部存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。备忘录模式常常与命令模式和迭代子模式一同使用。备忘录模式的角色有三个......
  • Java偏向锁实现原理(Biased Locking)
    评:阅读本文的读者,需要对Java轻量级锁有一定的了解,知道lockrecord,markword之类的名词。可以参考我的一篇博文:Java轻量级锁原理详解(LightweightLocking)Java偏向锁(BiasedLocking)是Java6引入的一项多线程优化。它通过消除资源无竞争情况下的同步原语,进一步提高了程序的运行......
  • tomcat6启动报错java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileH
    评:tomcat6启动报错在apache-tomcat-6.0.26/logs/catalina.out日志里面报错:java.lang.ClassNotFoundException:1catalina.org.apache.juli.FileHandler这个是由于apache-tomcat-6.0.26/bin/catalina.sh文件被修改过了,应该把下面的一行放在-Djava.util.logging.manager的前......
  • JavaScript增删HTML标签
    要在JavaScript中添加和删除标签,可以使用以下代码:添加标签:```javascript//创建一个新标签varnewTag=document.createElement("p");//设置标签属性和内容newTag.setAttribute("id","myTag");newTag.innerHTML="Hello,world!";//获取要添加标签的父元素varparen......