首页 > 解决方案 > PHP Regex - 获取字符串中的订单 ID(8 位长,以 0 开头)

问题描述

我有以下字符串

ORDER/07656473/STATUS

by07656473是我商店中的订单参考。

我目前有一个函数可以像这样从所述字符串中提取 Order 引用

public function getOrderReference()
{
  $regex = '/ORDER\/([0-9]{8})\/STATUS/';

  if (preg_match($regex, $this->string, $output)) {
    return $output[1];
  }

  return false;
}

现在,它成功地获得了 Order 参考,因为它只是数字,8 个数字长并且介于ORDER和之间STATUS

但是,我需要能够在正则表达式中添加引用应始终以 0 开头。我该如何实现这一点?

我看过类似的东西STATUS\/(0)([0-9]{7})\/ACCEPTED 但是它然后将订单参考分成几部分(0,然后是 7656473),因为我需要它来保持它作为一个整体。

标签: phpregexpreg-match

解决方案


我看过类似的东西STATUS\/(0)([0-9]{7})\/ACCEPTED但是它然后将订单参考分成几部分(0,然后是 7656473),因为我需要它来保持它作为一个整体。

然后不要将圆括号(将匹配的结果分组)分成两组。保持组,0然后将字符类移到前面:

STATUS\/(0[0-9]{7})\/ACCEPTED


推荐阅读