正则表达式的特使符号

String str1 = "erkktyqqquizzzzzo";
replaceAllDemo(str,"\\d{5,}","#");

replaceAllDemo(str1,"(.)\1+","$1");

请问在这个java正则表达式中"#"和"$1"代笔什么含义不太明白 请大神指点 谢谢

#没有特殊含义,只是替换后的文本
$1代表分组,在你的程序里面代表1前面的任意字符,你的正则表达式的意思是将111...前面的任意字符替换掉。

#就是字符,不是正则表达式的关键字
$1是第一个分组

$1 代表捕获组 (.) 的捕获值

(.)\1+ 捕获类似于一个字符重复出现2次以上,比如 aa bbb