You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Twig模板的Grav regex_replace()函数中正确使用正则表达式

Grav regex_replace 函数正确使用方法

你的代码不生效的核心问题是正则表达式逻辑错误,而非函数用法问题:

  • 你写的/(\s)?/会匹配「0个或1个空白字符」,由于?允许匹配0次,它会命中字符串里所有“空位置”(比如字符前后、开头结尾的无字符区域)。替换成空字符串时,这些空位置的替换不会改变原字符串,真正的空白字符也会因为匹配逻辑的问题无法被彻底替换。

如果你的需求是移除所有空白字符,正确写法如下:

{% set result = regex_replace('The quick brown fox', '/\s+/', '') %}
{{ result }}
{# 输出:Thequickbrownfox #}

关键说明:

  • \s 匹配任意空白字符(空格、制表符、换行等)
  • + 表示匹配1个或多个连续的空白字符,避免多次重复替换
  • Grav的regex_replace基于PHP的preg_replace实现,默认会全局替换所有匹配项,无需额外加g标志

如果需要批量替换多组规则,才需要传入数组形式的匹配和替换规则,例如:

{% set result = regex_replace(
    'Hello World! 123',
    ['/Hello/', '/\d+/'],
    ['Hi', '456']
) %}
{{ result }}
{# 输出:Hi World! 456 #}

内容的提问来源于stack exchange,提问作者stckvrw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:24:10