- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最佳答案
replaceAll
替换正则表达式(regexes)。如果您对正则表达式一无所知,您应该阅读 this tutorial 。然而,这个特定的正则表达式有点棘手,所以我会解释一下。正则表达式是 (.)\1+
(反斜杠在字符串文字中必须加倍,但正则表达式只有一个反斜杠)。
第一个.
匹配任何单个字符。由于它位于括号中,匹配器将其视为“捕获组”;因为它是正则表达式中的第一组,所以它是“捕获组 1”。当找到匹配项时(即当匹配器找到任何单个字符时),该匹配项的文本将成为捕获组。因此,“捕获组 1”就是该字符。
下一部分是\1+
。 +
是一个量词,意思是“+ 后面的一个或多个”。 \1
是一种特殊模式,表示“捕获组 1 中的任何内容”。所以这一切意味着该模式将匹配任何单个字符,后跟一个或多个相同字符的出现。也就是说,它匹配两次或多次出现相同字符的模式。
现在每个这样的模式都被替换为 "$1"
。 $1
特别是replaceAll
,它的意思是“捕获组1的内容”,即匹配到的单个字符。
所以基本上,只要匹配器看到同一字符连续出现两次或多次,它就会用该字符的一次出现来替换它们。也就是说,它将转变"xxxyyyyyyzzz"
至"xyz"
.
关于java - 如何理解这样的代码 pKataLengkap.replaceAll ("(.)\\1+", "$1"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36614094/
谁能描述一下下面的代码的含义 pKataLengkap.replaceAll("(.)\\1+", "$1") 我不明白,我从 link from code fight 得到一些引用 谢谢! 最佳答案
我是一名优秀的程序员,十分优秀!