Php 如何从数字中为特定数字添加样式?

Php 如何从数字中为特定数字添加样式?,php,mysql,Php,Mysql,在此示例1中: 我们将786涂成红色,78位数字涂成红色,后面是00普通颜色,6位数字涂成红色(78006) 这里是我想要的链接: 实现这一点的最佳方法是使用正则表达式,例如: [$number=$row['plate_number'];//it will have many numbers ex:78666,78686,78006 ex:$number="78666"; // random sample in this ex:first 786 digit in red color an

在此示例1中: 我们将786涂成红色,78位数字涂成红色,后面是00普通颜色,6位数字涂成红色(78006)

这里是我想要的链接:
实现这一点的最佳方法是使用正则表达式,例如:

[$number=$row['plate_number'];//it will have many numbers ex:78666,78686,78006

ex:$number="78666";  // random sample

in this ex:first 786 digit in red color and remaining 66 in normal color(78666)

ex1:$number="78006";  // random sample
$string=preg#u replace('#([0-9]*?)(7)([0-9]*?)(8)([0-9]*?)(6)([0-9]*?)#','$1$2$3$4$5$6$7',$string);
此正则表达式将匹配:

  • ([0-9]*?)
    :零个或多个数字字符,不替换它们
  • (7)
    :第一次出现
    7
    ,将其替换为
    7
  • ([0-9]*?)
    :零个或多个数字字符,不替换它们
  • (8)
    :第一次出现
    8
    ,将其替换为
    8
  • ([0-9]*?)
    :零个或多个数字字符,不替换它们
  • (6)
    :第一次出现
    6
    ,将其替换为
    6
  • ([0-9]*?)
    :零个或多个数字字符,不替换它们
  • 如果在字符串中未按该顺序找到
    7
    8
    6
    ,这将不起任何作用


    编辑:为每个
    [0-9]*
    添加了
    ,以使量词不发音(如上所述)

    到目前为止您尝试了什么?请发布您的代码。按照@Oliver所说的,您需要的输出是什么(Excel、HTML等)?与输出颜色相关的所有规则是什么?在您的问题中,您希望786为红色,其余66为正常颜色。然而在图片中,数字78666是完全红色的。$find=array(“786”)$替换=阵列(“786”)$string1=str_replace($find,$replace,$row['plate_number']);我在这里试过了,但颜色只有786。。。。但是我还需要其他的事件,在图像中这是图像中的一个小错误,
    78606
    返回最后6个红色,而不是另一个。@Shakif So
    78606
    这个代码按照你想要的方式工作?我想你只是不小心在注册表中添加了两次
    “$1$2$3$4$5$6$7”
    。该死的,复制/粘贴。
    $string = preg_replace('#([0-9]*?)(7)([0-9]*?)(8)([0-9]*?)(6)([0-9]*?)#', '$1<span style="color: red;">$2</span>$3<span style="color: red;">$4</span>$5<span style="color: red;">$6</span>$7', $string);