【问题标题】:Replace by an "X" every 3rd character in a string PHP用“X”替换字符串 PHP 中的每 3 个字符
【发布时间】:2021-12-29 00:45:19
【问题描述】:

我需要每隔 3 个字符用 X 替换每个字符

字符串 = "abcdefghijkl" 所需的输出 =“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

【问题讨论】:

    标签: php arrays string


    【解决方案1】:

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

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

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

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

    输出

    41x10x36xtmxesxf9x
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-06
      • 2013-11-05
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      相关资源
      最近更新 更多