【发布时间】:2017-10-20 00:59:33
【问题描述】:
我正在尝试使用preg_replace 将数字更改为字母,但只有数字包含在"" 中,并且子字符串中的字符数不超过 7 个。
示例输入字符串:
"3"sca"""co"1"str"0"ctor""r"3"t"0"r"1""locat"5"o"133""0"27""754a49b393c2a0"33"b97"332"cb7"3"c3c07"2""co"1"str"0"ctor""r"3"t"0"
期望的效果是每个符合条件的2 变成d,每个符合条件的3 变成e。
这些是正确替换的示例:
-
"3"变为e -
"23"变为de -
"33"变为ee -
"32"变为de -
"333223"变为eeedde
我的编码尝试:
$string = preg_replace("/\"322\"+/", "edd", $string);
$string = preg_replace("/\"233\"+/", "dee", $string);
$string = preg_replace("/\"32\"+/", "ed", $string);
$string = preg_replace("/\"23\"+/", "de", $string);
$string = preg_replace("/\"33\"+/", "e", $string);
$string = preg_replace("/\"333\"+/", "e", $string);
$string = preg_replace("/\"3\"+/", "e", $string);
$string = preg_replace("/\"3\"+/", "e", $string);
$string = preg_replace("/\"3\"+/", "e", $string);
$string = preg_replace("/\"3\"+/", "e", $string);
$string = preg_replace("/\"3\"+/", "e", $string);
如何通过一次 preg_replace 调用完成所有符合条件的替换?
【问题讨论】:
-
您为什么要尝试替换组合,例如322?你把事情复杂化了。
-
我正在尝试第 3 方网络抓取,如果我替换,他们会在其中隐藏获取字符串,我将获得完整的获取价值
-
替换前 754a49b393c2a0"33"b97"332"cb7"3"c3c07"2" 替换后 754a49b393c2a0eeb97eedcb7ec3c07d
-
然后是 domain/get_id=754a49b393c2a0eeb97eedcb7ec3c07d
-
这似乎是一个有缺陷的系统。您只能使用 10 个字符。
标签: php regex preg-replace preg-replace-callback