Php正则表达式更改特殊字符之间的十进制数

时间:2016-11-24 22:56:59

标签: php regex

我正在尝试替换2个已解码的html字符之间的十进制数。我知道我需要使用正则表达式,但无法正确编写它。 我的字符串:

$string = 'class="total">5.00</td>';

我需要更改的是5.00,并带有另一个十进制数字。

我试过了:

$string = 'class="total">5.00</td>';
$new_number = 7.00;
echo preg_replace('#\class="total">(.+?)\</td>#', $new_number, $string);

3 个答案:

答案 0 :(得分:1)

$string = 'class="total">5.00</td>';
$replacement = '6.00';
echo preg_replace('/(class="total">)(\d+\.\d{1,2})(<\/td>)/', '${1}' . $replacement . '${3}', $string);

另一个答案在大多数情况下不起作用,替换将无效,因为它将尝试访问不存在的$ 17捕获。

答案 1 :(得分:0)

你应该试试这个:

$re = '/(class="total">)([0-9]+\.?[0-9]+)(<\/td>)/';
$str = 'class="total">5.00</td>';
$subst = '${1}7.00${3}';

$result = preg_replace($re, $subst, $str);

echo $result;

答案 2 :(得分:0)

您可以使用lookaround

^(проезд|пл|пр-кт|пер|наб|линия|км|б-р|аллея|кв-л)\s(.+)[^\)]$