Products
GG网络技术分享 2025-03-18 16:15 2
String str1 = \"erkktyqqquizzzzzo\";replaceAllDemo(str,\"\\\\d{5,}\",\"#\");
replaceAllDemo(str1,\"(.)\\1+\",\"$1\");
请问在这个java正则表达式中\"#\"和\"$1\"代笔什么含义不太明白 请大神指点 谢谢
#没有特殊含义,只是替换后的文本
$1代表分组,在你的程序里面代表1前面的任意字符,你的正则表达式的意思是将111...前面的任意字符替换掉。
#就是字符,不是正则表达式的关键字
$1是第一个分组
$1
代表捕获组 (.)
的捕获值
(.)\\1+
捕获类似于一个字符重复出现2次以上,比如 aa
bbb
本文写于 2015 年,整理文档的时候发现竟然曾经还写过技术文章,决定重新排版后发于知乎
首先声明,本文所有的代码都是使用 ES6 所写,ES5 需要修改之后才能运行,不过本文没有涉及到太多 ES6 新特性,并且由于 v8 (2015 年)不支持 u 修饰符,最后基本是用 ES5 的知识实现。
曾遇到过一个匹配特殊字符的需求,例如一段文本 'ab*cd$你好我也好]\\nseg$me*ntfault\\nhello,world'
,用户可以选择用 *
或者 $
来分割字符串。
在 Javascript 中,$
和 *
都是预定义的特殊字符,不能直接写在正则表达式中,需要转义,写成 /\\$/
或者 /\\*/
,我们需要根据用户选择的字符来生成正则表达式:
Demand feedback