Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Twig/PHP-使用Replace或Regex格式化字符串_Php_Regex_Twig - Fatal编程技术网

Twig/PHP-使用Replace或Regex格式化字符串

Twig/PHP-使用Replace或Regex格式化字符串,php,regex,twig,Php,Regex,Twig,如何将细枝中的字符串格式化为以下格式: 例如:img=05myphoto-Car.jpg 我需要删除数字前缀和- 我主要使用它来输出基于文件名的图像标题 期望输出: Myphoto Car 到目前为止,我已经从文档中尝试过: {{ img |replace({'.jpg': "", '-' : " "}) }} 输出字符串 05myphoto Car 我还尝试了{{replace({'range(0,9)':}}}//numeric prefix-如果您愿意在模板中这样做,则不起作用,尽管

如何将细枝中的字符串格式化为以下格式:

例如:
img=05myphoto-Car.jpg

我需要删除数字前缀和
-

我主要使用它来输出基于文件名的图像标题

期望输出:

Myphoto Car
到目前为止,我已经从文档中尝试过:

{{ img |replace({'.jpg': "", '-' : " "}) }}
输出字符串

05myphoto Car

我还尝试了
{{replace({'range(0,9)':}}}//numeric prefix-如果您愿意在模板中这样做,则不起作用

,尽管作为控制器/服务更好,并且使用类似于
preg\u replace('/\d+/','')的条带编号
并另外使用大写过滤器。

如果您愿意在模板中这样做,尽管它作为控制器/服务会更好,并且带一些类似于
preg\u replace('/\d+/','')的条带编号。

并另外使用大写过滤器。

这对我来说很好(Craft CMS):


这对我来说很好(工艺CMS):


迟做总比不做好

只需注册它(对我来说是在
index.php

然后在视图上:
{{myVar | preg_replace('/\\d+/','')}


请注意,所有反斜杠都必须转义,否则,它们将被细枝删除…

迟做总比不做好

只需注册它(对我来说是在
index.php

然后在视图上:
{{myVar | preg_replace('/\\d+/','')}


请注意,所有反斜杠都必须转义,否则,它们将被细枝删除…

这可能应该在您的业务逻辑中处理,而不是在您的模板中处理。我同意,但这里没有太多的逻辑需要处理,我只是在玩和学习。。我还想了解为什么regex不起作用,因为您需要添加额外的扩展,请参考我的答案。如果您使用的是Symfony 4,则有。这可能应该在您的业务逻辑中处理,而不是在您的模板中处理。我同意,但这里没有太多的逻辑需要处理,我只是在玩和学习。。我还想了解为什么正则表达式不起作用,因为您需要添加额外的扩展,请参考我的答案。如果您使用的是Symfony 4,那么就有了。因此没有内置的正则表达式扩展,要么我必须自己扩展Twig,要么使用第三方过滤器?正如我所知,Twig目前只使用regexp进行比较,因此没有内置的regex扩展,要么我必须自己扩展Twig,要么使用第三方过滤器?正如我所知,Twig目前只使用regexp进行比较,这似乎是一个特定于Craft CMS的扩展:这似乎是一个特定于Craft CMS的扩展:
{# Removes all characters other than numbers and + #}
{{ profile.phone|replace('/[^0-9+]/', '') }}
$app['twig']->addFilter('preg_replace', new Twig_Filter_Function(function ($subject, $pattern, $replacement) {
    return preg_replace($pattern, $replacement, $subject);
}));