strip()并获得价值

时间:2010-05-05 20:41:16

标签: php

我有一个看起来像这样的HTML列表:

  • animals(45)
  • 房屋(36)
  • computers(96)

我希望获取()内的所有值,并使其像$sum = 45+36+96;

一样

我该怎么做? 感谢

2 个答案:

答案 0 :(得分:5)

假设html内容已经在像$ list这样的php变量中,

preg_match_all('{<li>[a-zA-Z\s]*\s\(([0-9]*)\)</li>}', $list, $matches);
$sum = array_sum($matches[1]);

对于<li><span><a href="">,您可以将正则表达式修改为类似

的内容
preg_match_all('{<li>(["=a-zA-Z<>\s]*)\s\(([0-9]*)\)([/a-zA-Z<>\s]*)</li>}', 
   $list, $matches);
$sum = array_sum($matches[2]);

答案 1 :(得分:0)

给定任何字符串,这将匹配并求和括号之间的所有数值:

preg_match_all('|\((\d+)\)|', $str, $matches);
$sum = array_sum($matches[1]);