我如何删除重复字符(例如删除字母k
in cakkkke
让它成为cake
)?
执行此操作的一种简单方法是循环遍历字符串的每个字符,如果该字符不是前一个字符的重复,则将字符串的每个字符附加到新字符串。
下面是一些可以执行此操作的代码:
$newString = '';
$oldString = 'cakkkke';
$lastCharacter = '';
for ($i = 0; $i < strlen($oldString); $i++) {
if ($oldString[$i] !== $lastCharacter) {
$newString .= $oldString[$i];
}
$lastCharacter = $oldString[$i];
}
echo $newString;
有没有办法使用正则表达式或内置函数更简洁地完成同样的事情?
使用反向引用
echo preg_replace("/(.)\\1+/", "$1", "cakkke");
Output:
cake
解释:
(.)
捕获任何字符
\\1
是对第一个捕获组的反向引用。这.
上面这个例子。
+
使反向引用至少匹配 1(以便它匹配 aa、aaa、aaaa,但不匹配 a)
替换为$1
替换完整的匹配文本kkk
在这种情况下,对于第一个捕获组,k
在这种情况下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)