【问题标题】:Getting multiple number from a string从字符串中获取多个数字
【发布时间】:2012-11-14 23:10:56
【问题描述】:

我有一个表格,其中一个输入名称的数字与我的数据库中的信息相对应。我需要提取数字并将它们设置为变量,以便我可以使用它们来存储和检索数据库中的数据。

示例:rdobtn_1_15 或 qtybx_9_82

那么数字将是动态的并且会发生变化,所以我需要一些可以获取数字的东西,无论它们是“20”还是“5327”

【问题讨论】:

  • 嗯?给我们样本输入和正确的、期望的输出。但首先,请向我们展示您尝试过什么
  • 你的字符串中的 1,15,9,82 和 20 或 5327 有什么关系?

标签: php string dynamic numbers extraction


【解决方案1】:
$input = 'rdobtn_1_15'
$matches = null;
$returnValue = preg_match('/_(\\d+)_(\\d+)/', $input, $matches);

您的匹配项将被存储为

array (
  0 => '_1_15',
  1 => '1',
  2 => '15',
)

因此您可以通过以下方式访问您的号码

echo $matches[1] // 1
echo $matches[2] // 15

供参考:Regular Expressions

【讨论】:

    【解决方案2】:

    如果这是您想要实现的目标,您可以从字符串中提取数字:

    preg_match_all('!\d+!', $your_string, $matches);
    print_r($matches);
    

    【讨论】:

    • 在这种情况下,所谓的输入名称本身不允许包含数字。因为我们不确切知道这是否可行,所以您应该选择 '!_(\\d+)_(\\d+)!'。此外,您忘记了 'd' 之前的第一个 '\' 以转义第二个。
    【解决方案3】:
    $array = explode('_', $string);
    
    $element = $array[5]; // or whichever element you want
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      相关资源
      最近更新 更多