【发布时间】:2013-12-04 02:35:24
【问题描述】:
我正在尝试为我的网站用户创建一个非常简单的模板系统,允许他们将变量添加到他们的内容中。
我想要的是在 php 中运行以下正则表达式:
<p>Hi {{ user.name | fallback="awesome person" }}!</p>
这至少会给我以下物品:
- {{ 用户名 | fallback="真棒人" }}
- 用户名
- 了不起的人
这还需要匹配以下内容:
<p>Your site is {{ site.name }}</p>
这会给我回报:
- {{ 站点名称 }}
- 网站名称
我会添加我尝试过的所有东西,但是每次新尝试我基本上都会覆盖上次尝试,正则表达式不是我的强项!
理想情况下,我将对整个内容运行正则表达式,它会返回一个包含所有匹配项的数组,因此我可以循环遍历并将 (1) 替换为 $data[(2)],除非 (2) 没有'不存在,在这种情况下,我将在 (3) 后备中添加。
例如,如果 user.name 存在于我的数组中,则响应为
Hi Frank!
如果不是,则响应为
Hi awesome person!
我可以处理循环/替换等,这是我需要帮助的原始正则表达式,有什么想法吗?
理想情况下,空格也是可选的,即{{user.name|fallback="awesome person"}} 也可以使用
【问题讨论】:
-
添加您尝试过的最后一件事。我没有看到任何正则表达式尝试:)
-
@Jack 我得到的最可靠的结果与
/{{(.*)}}/一样原始,当我没有引入后备时,这足以让我得到结果