需要preg_match / regex格式

时间:2016-02-05 17:46:37

标签: php regex

我提交了以下帖子字段,我正在尝试获取数量的表单字段中每个数字的值。有人可以用正则表达式帮我吗?我试图获取变量中的每个数字。

FORMAT

Quantity_{Category}_{Product}_{Item}

提交的后场

[submitted] => 1
[Quantity_12038_16061_24960] => 1
[Quantity_12037_16060_24959] => 2
[btnBuyNow] => Next Step

PHP代码

foreach ($_POST as $key => $value) {
    if (preg_match('/^Quantity_(\d+)$/', $key, $matches)) {
        echo 'Key:' . $key . '<br>';
        echo 'Matches:' . $matches . '<br>';
        echo '<hr>';
    }
}

2 个答案:

答案 0 :(得分:2)

为此目的使用preg_match() docs,这是代码的样子示例:

$subject="Quantity_12038_16061_24960";
$pattern='/Quantity_(\d+)_(\d+)_(\d+)/';
preg_match($pattern, $subject, $matches);

echo $matches[0]; //12038 {Category}
echo $matches[1]; //16061 {Product}
echo $matches[2]; //24960 {Item}

您可以看到此正则表达式的执行情况here

答案 1 :(得分:1)

如上所述,不需要正则表达式:

foreach($_POST as $key => $val) {
    if(strpos($key, 'Quantity') === 0) {
        $results = explode('_', $key);
        print_r($results);
    }
}

除了unset($results[0]);

之外,无论出于何种原因摆脱数量字符串