在 PHP 中,在分量表之后提取字符串的字符


Extracting characters of a String in PHP after a delimeter

>我有一个PHP字符串,其中包含:煎饼,华夫饼-400(这是我数据库中的一些数据)我想从上面的字符串中提取 400。我尝试使用爆炸函数和 strtok。似乎都不起作用。

这就是我使用爆炸函数的方式:

$msg="Pancake, Waffle -400";
$amt=explode("-", $msg);
echo $amt[0];

有没有另一种方法可以提取连字符后面的字符?

使用 substr 和 strpos:

$msg="Pancake, Waffle -400";
echo substr($msg, 0, strpos($msg, '-'));

如果您只想要"400"部分:

$msg="Pancake, Waffle -400";
echo substr($msg, strpos($msg, '-') + 1);

一些正则表达式解决方案?

$msg = "Pancake, Waffle -400";
$regex = '~-?'d+~';
preg_match($regex, $msg, $match);
print_r($match);

现在,$match[0]持有-400.查看有关 ideone.com 的演示

为了避免最后一个

之前的数据中出现连字符的最终问题,我将使用 strrchr,如下所示:

$msg = "Pancake, Waffle -400";
$amt = substr(strrchr($msg, "-"), 1); // substr removes the '-' from the result
echo $amt;