【发布时间】:2021-03-15 16:12:05
【问题描述】:
这么晚了,我还真搞不明白。
我的文字是这样的:
This is a [;;Text] and I want to match [center]everything without ;;[/center]
我用它来转换成 HTML:
return preg_replace('/\[(.+)\]/U', '<$1>', $text);
我认为模式 /\[[^;{2}](.+)\]/U 应该可以解决问题,但它不起作用。
【问题讨论】:
-
您不应该在 [] 中使用 {}。您可以使用此模式 [[;]{2}(.+)]
-
嗯,它不起作用。它仍然与“;;”匹配的东西
-
哦,请试试这个[(?!;)(.*)]
-
为什么需要匹配这个语法?因为这里最好的答案是“尽可能停止使用这种语法”,而不是使用正则表达式,可能开始使用真正的模板引擎?
-
你能告诉我什么是模板引擎,我可以使用哪一个?它是我加载到我的项目中然后用来替换模板标记的外部 php 库吗?