在字符串PHP中查找模式

时间:2016-11-04 07:12:06

标签: php regex

我正在寻找一种在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美元,并将它们保存在变量中。

1 个答案:

答案 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