正则表达式在php不起作用,PHP正则表达式不起作用 – 解析{{tags}}

我想要做的是解析以下字符串,使{{}}内的所有占位符都被“default”指示的值替换.例如,{{time,default = noon}}应该成为正午.

这是我试过的代码:

$input = 'It was a {{color, default=black}} and scary {{phase}}. As the {{animals, default=dogs}} {{make_sound, default=barked}} and the trees swayed {{setting, default=to the breeze}}, a {{size, default=}} {{monster, default=troll}} that emerged from the shadows.';

$input = preg_replace('/\{\{.*default=(\w+)\}\}/i', '$1', $input);

echo $input;

产生的输出是:输出:它是从阴影中出现的巨魔.

为什么剩余的模式无法正确解析?

解决方法:

{{[^}]*\bdefault=([^}]*)}}

您可以尝试这个.替换$1.查看演示.

标签:php,regex

来源: https://codeday.me/bug/20190727/1558517.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值