我想替换字符串中的每个数字,例如ABC123EFG
与另一个随机字符。
我的想法是生成一个随机字符串,其中包含所有数字的数量$str
并将每个数字替换为$array[count_of_the_digit]
,有没有办法在没有 for 循环的情况下做到这一点,例如使用正则表达式?
$count = preg_match_all('/[0-9]/', $str);
$randString = substr(str_shuffle(str_repeat("abcdefghijklmnopqrstuvwxyz", $count)), 0, $count);
$randString = str_split($randString);
$str = preg_replace('/[0-9]+/', $randString[${n}], $str); // Kinda like this (obviously doesnt work)
你可以使用preg_replace_callback()
$str = 'ABC123EFG';
echo preg_replace_callback('/\d/', function(){
return chr(mt_rand(97, 122));
}, $str);
它会输出类似以下内容:
ABCcbrEFG
如果您想要大写值,您可以更改97
and 122
到它们的 ASCII 等价物64
to 90
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)