我的模板中有此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
所以我必须在正则表达式规则中捕获空间标记?
答案 0 :(得分:1)
我建议进行以下更改:
$
用于插入字符串文字,如果需要将其设置为文字$
字符,应使用单反斜杠对其进行转义。否则,建议使用单引号u
修饰符传递给正则表达式,以便可以使用PCRE正确解析字符串模式和输入字符串。使用
{$product.unit_price_full|regex_replace:'/^[\d\s]*,?\d{2}\s*[€$₪]*\s*/u':""}