繁体   English   中英

将字符串 PHP 中的每 3 个字符替换为“X”

[英]Replace by an "X" every 3rd character in a string PHP

我需要每第三个字符用 X 替换每个字符

字符串 = "abcdefghijkl" 所需 output = "abxdexghxjkx"

我试过这个,但它取代了每一次出现

$str = "41610236ytm7eszf9d";

//to get the character every 3rd and save in $kept

$kept = preg_replace('/.{2}(.)/', "$1", $concatenated);
$find = str_split($kept);

$replace = array("X","X","X","X","X","X","X");

echo " <br> str_replace <br>"; 
 
echo str_replace($find, $replace, $str);
      echo "<br>";
     echo " <br> str_replace_first <br>"; 
 echo str_replace_first($kept, 'x', $concatenated); 
// outputs : 41X10X3XXtmXesXf9X

将 preg_replace 与此模式一起使用.{2}(.)并替换为$1只会保留替换后捕获组的值,并且不会添加 x 字符。

相反,您可以匹配(.{2}). 并替换为$1x

另一种选择是匹配 2 个字符,然后使用\K忘记匹配的内容,然后匹配单个字符,将替换为 x

$str = "41610236ytm7eszf9d";
echo  preg_replace('/..\K./', "x", $str);

Output

41x10x36xtmxesxf9x

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM