为了账号安全,请及时绑定邮箱和手机立即绑定

用正则表达式替换多个单词

用正则表达式替换多个单词

PHP
陪伴而非守候 2023-09-08 10:35:45
我想替换一些文字:我的文字看起来像:这是对大量辛勤工作的巨大回报。非常小,[[结果]]开发人员会将其烧毁。Occecat 非常高兴我会不带任何脂肪来。我想替换 [[...]] 内的文本。问题是如果括号之间有更多单词,它就不会渲染。这是我当前的正则表达式:"/\[\[(\w+)\]\]/"
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

\d匹配任何空格。尝试

"/\[\[(.+?)\]\]/“

(未测试)

我添加了?(非贪婪),以防您有多个案例需要匹配。


查看完整回答
反对 回复 2023-09-08
?
呼如林

TA贡献1798条经验 获得超3个赞

如果您想制作一个“神秘文本”,双方括号之间的每个字母都有一个星号,您可以将此模式与以下内容一起使用preg_replace()

$pattern = '~(?: \G (?!\A) | \[\[ (?= [^]]* ]] ) ) \s* \K [^]\s]~x';

$result = preg_replace($pattern, '*', $str);

演示

对于每个单词一个星号,只需将+量词添加到最后一个字符类即可。

否则,如果您只想用一个星号来表示所有内容,Sil 的答案是好的(最终带有 s 修饰符)。


查看完整回答
反对 回复 2023-09-08
  • 2 回答
  • 0 关注
  • 61 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信