>我有一个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;