我有一个PHP字符串,其中包含:Pancake,Waffle -400(这是我数据库中的一些数据) 我想从上面的字符串中提取400。我尝试过使用explode函数和strtok ..似乎没有用。
这就是我使用爆炸功能的方法:
$msg="Pancake, Waffle -400";
$amt=explode("-", $msg);
echo $amt[0];
是否有其他方法可以在连字符后提取字符?
答案 0 :(得分:0)
一些正则表达式解决方案?
$msg = "Pancake, Waffle -400";
$regex = '~-?\d+~';
preg_match($regex, $msg, $match);
print_r($match);
现在,$match[0]
拥有-400
。查看 demo on ideone.com 。
答案 1 :(得分:0)
使用substr和strpos:
$msg="Pancake, Waffle -400";
echo substr($msg, strpos($msg, '-') + 1);
如果您只想要' 400'部分:
{{1}}
答案 2 :(得分:0)
为了避免在最后一个数据之前数据中出现连字符的问题,我会使用strrchr,如下所示:
$msg = "Pancake, Waffle -400";
$amt = substr(strrchr($msg, "-"), 1); // substr removes the '-' from the result
echo $amt;