在php中使用正则表达式获取值?

在php中使用正则表达式获取值?,php,Php,如何使用preg\u match\u all从下面的html获取价格1.199,00 `<h4><span class="price_label">Preis:&nbsp;</span>1.199,00 Euro &nbsp;(inkl. 19% MwSt.)</h4>` `Preis:1.199,00欧元(约19%MwSt.)` 代码 <?php $pattern = '#'.$regex.'#';

如何使用
preg\u match\u all
从下面的html获取价格
1.199,00

`<h4><span class="price_label">Preis:&nbsp;</span>1.199,00 Euro &nbsp;(inkl. 19% MwSt.)</h4>`
`Preis:1.199,00欧元(约19%MwSt.)`
代码

<?php
     $pattern = '#'.$regex.'#';
     preg_match_all($pattern, $data, $price);
     print_r(price);
    ?>

这是一个简单的例子:

<?php
$subject = '<h4><span class="price_label">Preis:&nbsp;</span>1.199,00 Euro &nbsp;(inkl. 19% MwSt.)</h4>';
$pattern = '|<span[^>]+class="price_label".*>[^<]+</span>([0-9.,]+)\s*.*$|';
preg_match($pattern, $subject, $tokens);
var_dump($tokens[1]);

但是请注意,使用正则表达式解析HTML标记或从中提取值是有问题的。这样的解决方案往往很挑剔,所以对于标记的微小修改并不健壮。使用DOM解析器要好得多

请给我们看看你试过的正则表达式。
string(8) "1.199,00"