preg_match和regex根据部分字符串选择完整字符串

时间:2013-01-14 00:41:36

标签: php regex preg-match

我有一个包含此标记的html。

<font class="count">Total count is: 20</font>

如何使用preg_match获取总计数行,在这种情况下为20

2 个答案:

答案 0 :(得分:1)

这很简单:

$string = '<font class="count">Total count is: 20</font>';

preg_match('/Total count is:\s+(\d+)/', $string, $match);

echo $match[1]; // 20

否则,如果要在其他HTML中找到<font>标记以提取字体节点的文本部分,然后获取节点值末尾的数字,则使用DOM方法。

这是另一种有趣的方式:

$string = '<font class="count">Total count is: 20</font>';

$string = filter_var($string, FILTER_SANITIZE_NUMBER_INT);

echo $string; // 20

另一个:

$string = '<font class="count">Total count is: 20</font>';

$string = ltrim(strrchr(strip_tags($string), ' '));

echo $string; // 20

答案 1 :(得分:1)

您可以使用

$foo = '<font class="count">Total count is: 20</font>';
preg_match('/<font class="count">Total count is: (\d+)</font>/', $foo, $matches);
echo $matches[1];

但是最好使用HTML解析器来获取html元素的内容,然后将正则表达式应用于该元素。