Php Preg Replace问题是剥离编号/字符长度?
考虑下面的例子 问题在于preg_replace,它用于替换变量total_balance_Overrided和total_balancePhp Preg Replace问题是剥离编号/字符长度?,php,Php,考虑下面的例子 问题在于preg_replace,它用于替换变量total_balance_Overrided和total_balance $text = 'this: {{total_balance_overridden}} - that: {{total_balance}}'; $total = '$517.50'; $overiddentotal = '$390.00'; $text = preg_replace('/{{total_balance_overridden}}/', $o
$text = 'this: {{total_balance_overridden}} - that: {{total_balance}}';
$total = '$517.50';
$overiddentotal = '$390.00';
$text = preg_replace('/{{total_balance_overridden}}/', $overiddentotal, $text);
$text = preg_replace('/{{total_balance}}/', $total, $text);
echo $total;
echo $overiddentotal;
echo $text;
这让我
$517.50
$390.00
this: 0.00 - that: 7.50
看起来$total和$overiddentotal变量的输出是正确的,但是当使用preg_replace替换它们时,它们的长度被去除,货币符号和前两个数字丢失。你知道为什么吗
注意:如果我将美元符号替换为英镑符号,它会工作!我得到
this: £390.00 - that: £517.50
那么,美元符号和2个数字是某种特殊的字符或变量吗?美元符号是替换字符串中的特殊字符,它们通常指从匹配中捕获的子字符串。如果你想要一个字面上的美元符号,你必须避开它:
$total = '\$517.50';
$overiddentotal = '\$390.00';
另外请注意,在这种情况下,根本不需要正则表达式。只要使用,就不会有这个问题。这里不需要正则表达式,只要$text=str_replace[{{total_balance_overrided}}}',{{{total_balance}}}',[$overiddentotal,$total],$text;$以下数字为特殊代码参考,以匹配它。谢谢,str_替换更简单!