Regex/PHP-quandry

Regex/PHP-quandry,php,regex,Php,Regex,我正在使用这段很棒的代码: 它在regex101.com上运行得非常好 但它并没有在我的代码中填充$match,我也不知道为什么(而且我的大脑超级兴奋) $price=38; $dollar\u regex=“/\$([0-9]+[\.]*[0-9]*)/”; $str=“是[添加$3.00]”; 预匹配(“/\$([0-9]+[\.]*[0-9]*)/”,$str,$match); $fee=$match[1]; echo“费用为$FEE。将价格从$price更改为”; $price=$pri

我正在使用这段很棒的代码:

它在regex101.com上运行得非常好

但它并没有在我的代码中填充$match,我也不知道为什么(而且我的大脑超级兴奋)

$price=38;
$dollar\u regex=“/\$([0-9]+[\.]*[0-9]*)/”;
$str=“是[添加$3.00]”;
预匹配(“/\$([0-9]+[\.]*[0-9]*)/”,$str,$match);
$fee=$match[1];
echo“费用为$FEE。将价格从$price更改为”;
$price=$price+$fee;
回声“$price
”;
正则表达式本身是正确的。它在这里遇到了PHP字符串转义:

  preg_match("/\$...
               ↑
一个反斜杠将以双引号转义
$
符号。因此,正则表达式引擎将以literal
/$(…)/
的形式接收它


因此,要么使用两个反斜杠,要么将美元符号括在charclass中以便于阅读。

正则表达式本身是正确的。它在这里遇到了PHP字符串转义:

  preg_match("/\$...
               ↑
一个反斜杠将以双引号转义
$
符号。因此,正则表达式引擎将以literal
/$(…)/
的形式接收它


因此,要么使用两个反斜杠,要么将美元符号括在一个charclass中以便于阅读。

很好的解释!(我需要复制这个奇特的箭头:D)最近才想出键盘快捷键(AltRight+Y/U/I/etc)很好的解释!(我需要复制这个奇特的箭头:D)最近才找到键盘快捷键(AltRight+Y/U/I/etc)