Prestashop我无法使regex_replace正常工作

时间:2019-06-05 12:52:29

标签: regex prestashop smarty

我的模板中有此regex_replace:

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

$product.unit_price_full返回我“ 1,12 $ L”,我的regex_replace "/^[\d\s]*,?\d{2}\s*[€$₪]*\s*/" : " "应该删除“ L”之前的所有内容,但它仍然显示所有内容,例如regex无效,但是我在regex101上尝试了它,效果很好。

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

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

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

1 个答案:

答案 0 :(得分:1)

我建议进行以下更改:

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

使用

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