Php preg_replace数字字符

时间:2017-10-21 10:40:03

标签: php

for (i=0; i<128; i++)
  line[i] = '\0';

这显示了第一个和最后一个数字,如8 ****** 5 但是我怎么能像这样888888 **显示这个数字。 (隐藏最后2个数字)

谢谢!

$my_string = '88888805';
echo preg_replace("/(^.|.$)(*SKIP)(*F)|(.)/","*",$,my_string);

2 个答案:

答案 0 :(得分:2)

我不确定你是否曾在这个Regex模式上做过独特的事情。但是,我会在不使用您当前模式的情况下为您提供适合您的问题的一般信息。

$my_string = '88888805';
echo preg_replace("/([0-9]+)[0-9]{2}$/","$1**",$,my_string);

<强>解释

([0-9]+)将匹配所有数字,可以用\d+替换,它在括号之间被捕获,因为我们将在结果中使用它。

[0-9]{2}将匹配最后2位数字,同样,它可以替换为\d{2},它位于括号之外,因为我们不希望将它们包含在结果中。之后的$表示测试结束,无论如何都是可选的。

<强>结果:

Input: 88888805
Output: 888888**

答案 1 :(得分:0)

echo preg_replace("/(.{2}$)(*SKIP)(*F)|(.)/","*",$my_string);

如果是单一作业,你可能想要这样做。基本上说,如果最后两个字符不匹配,否则匹配。