我正在寻找一种在PHP字符串中查找模式的方法。我知道preg_match function
,但只返回1或0.
我有一些像这样的交易
'婴儿文具5折'
'超过50美元订单10美元'
'订单满$ 30减$ 5'
'7.50美元以上订单超过40美元
'你的订单减5%'
'任意购买优惠11%'
'订单满$ 50减$ 5'
所有订单减价10%
'超过100美元订单10美元'
'任意购买3美元运费'
我要做的是从交易文本中获取$ x或$ xx或$ xxx或x%或xx%或xxx%。
我想获取实际值而不是检查模式是否存在。
例如,来自
'超过100美元订单10美元',
我希望获得10美元和100美元,并将它们保存在变量中。
答案 0 :(得分:0)
函数preg_match_all()
可用于将匹配存储到另一个变量(函数的第三个参数)。
$str = '$10 Off Orders Over $100';
$matches = [];
$pattern = '/\$[0-9]*\.{0,1}[0-9]+/';
preg_match_all($pattern, $str, $matches);
echo $matches[0][0]; // $10
echo $matches[0][1]; // $100