老师,纠正一个错误。 JavaScript中,查找时必须用 \ 引用,替换时用 $。 node 和 Chrome中均是这样,查找时用 $ 无效。
let str = `the little cat cat is in the hat hat hat, we like it.`
let res = str.replace(/(\w+)(\s$1)+/g, '$1')
console.log(res)
作者回复: 感谢指出,我更正下
共 5 条评论
7
Robot
2020-06-18
课后思考:
/(\b\w+)(\s\1)+/g
作者回复: 赞,一看就是有经验,断言单词边界都用上了
共 3 条评论
6
furuhata
2020-06-17
课后思考题:
正则:(\w+)(\s\1)+
替换:\1
作者回复: 没问题
共 3 条评论
6
虹炎
2020-06-17
(\w+) (\s+\1)+
\1
我的答案。连续出现多次单词,可能有多个空格,所以用了\s+
作者回复: 赞,考虑的很全面
2
Johnson
2020-06-17
正则查找部分:(\w+)(.\1)+
正则替换部分:\1
初学者学习中,请老师多多指教。
作者回复: 没问题,空格可以用\s,尽量不用点,因为匹配的内容不精确。
2
Juntíng
2020-06-18
JavaScript 使用引用编号查找时, \number 和 $number 两者引用方式都可以,替换时用的是 $number 的方式。regex101 网站上 ECMAScript 模式下查找引用方式 $number 就不能使用了。
let reg = /(\w+) \1/gm;
let reg1 = /(\w+) $1/gm;
'the little cat cat is in the hat hat, we like it.'.replace(reg, '$1');
'the little cat cat is in the hat hat, we like it.'.replace(reg1, '$1');