资源:
[display = "home"]
html code
[/display]
[display = "category"]
html code
[/display]
[display = "home"]
html code
[/display]
告诉我如何编写正则表达式,例如,将短代码[display = "home"]...[/display]
替换为空。主要是他会被轮流换下。也就是说,正则表达式应该匹配开头[display = "..."]...
和找到的第一个[/display]
,而不是最后一个。试图描述清楚。
我循环执行此操作,但结果很糟糕:
$pattern = str_replace(["\"", "[", "]", " ", "/"], ["\\\"", "\[", "\]", "\s+", "\/"], $display[1][$key]);
$pattern2 = str_replace(["\"", "[", "]", " ", "/"], ["\\\"", "\[", "\]", "\s+", "\/"], $display[4][$key]);
$result = preg_replace('/'.$pattern.'(.+?)'.$pattern2.'/is', "", $result);
$pattern
它击中了哪里\[display = \"home\"\]
,但$pattern2
它击中了,\[\/display\]
但最终结果不是预期的。
这是模板引擎的正则表达式:
如果您使用它,
preg_replace_callback
您可以即时更改内容或完全删除块。正则表达式示例:https ://regex101.com/r/WlkqLp/1/