【发布时间】:2017-08-06 13:36:19
【问题描述】:
我想用另一个随机字符替换 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)
【问题讨论】:
-
我想不出任何方法可以在没有循环的情况下获得一串随机字符。为什么不想使用循环? (只是我,还是有时似乎有人告诉新程序员循环不好?)
-
并不是说循环不好,只是似乎用正则表达式或类似的东西可以做得更干净