我无法使 regex_replace 工作的 Prestashop

Prestashop I can't make regex_replace works

我的模板中有这个 regex_replace:

{$product.unit_price_full|regex_replace:"/^[\d\s]*,?\d{2}\s*[€$₪]*\s*/u":""}

$product.unit_price_full returns 我的“1,12 $ L”和我的 regex_replace "/^[\d\s]*,?\d{2}\s*[€$₪]*\s*/" : " " 应该删除 "L" 之前的所有内容,但它仍然显示正则表达式无法正常工作的所有内容,但我在 regex101 上尝试它,它工作得很好。

如果我添加 unicode 标记,它只会删除美元符号,但不会删除其他任何内容

这是我得到的输出 1,00  2.21

所以我必须在我的正则表达式规则中捕获 space 标记?

我建议进行以下更改:

    双引号字符串文字中的
  • $ 用于插入字符串文字,如果需要使其成为文字 $ 字符,则应使用单个反斜杠进行转义。否则,建议只使用单引号
  • 由于模式中有超出 ASCII 范围的 Unicode 字符,因此将 u 修饰符传递给正则表达式,以便可以使用 PCRE 正确解析字符串模式和输入字符串。

使用

{$product.unit_price_full|regex_replace:'/^[\d\s]*,?\d{2}\s*[€$₪]*\s*/u':""}