【问题标题】:How to separate digits from the end of a php string and save them into different variables如何将数字与php字符串的末尾分开并将它们保存到不同的变量中
【发布时间】:2025-12-28 08:00:12
【问题描述】:

我正在寻找分隔字符串末尾的数字,例如'Hello1221World987' 我需要的是 $var1 = 'Hello1221World' 和 $var2 = 987。 我已经调查过了,并能够从中获取 var1

$var1 = preg_replace("/[\s+\d+]{1,}$/","",$alias );

在 $var1 中,我得到了所需的结果。 但是有什么方法可以让我也获得 $var2 中的最后一个数字吗?

【问题讨论】:

    标签: php split


    【解决方案1】:

    只要寻找不贪心的(.*?),然后数字(\d+)到最后$

    preg_match("/(.*?)(\d+)$/", "Hello1221World987", $vars);
    

    现在你有了$vars[1]$vars[2]

    【讨论】:

      【解决方案2】:

      您可以使用parenthesized subpatterns 将字符串的不同部分捕获到变量中:

      $str = 'Hello1221World987';
      if (preg_match('/(.+?)(\d+)$/', $str, $match)) {
          // $match[1] now contains "Hello1221World"
          // $match[2] now contains "987"
      }
      

      【讨论】:

      • 感谢@Alex 的解决方案。太好了。
      【解决方案3】:

      在最后一个数字上拆分(捕获分隔符并扔掉空的)。

      <?php
      $str = 'Hello1221World987';
      list($var1, $var2) = preg_split(
          '/([0-9]+)$/',
          $str,
          -1,
          PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY
      );
      var_dump($var1, $var2);
      

      输出:

      string(14) "Hello1221World"
      string(3) "987"
      

      【讨论】: