Preg_match和regex基于部分字符串选择完整字符串


preg_match and regex to select full string based on a partial string

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

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

如何使用preg_match获得总计数行,在本例中是20

这很简单:

$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

可以使用

$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元素的内容,然后对其应用正则表达式。