[英]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.