我围绕 Pygments 库制作了一个 PHP 包装器,用于突出显示代码块。用于代码块检测的正则表达式可以在配置文件中配置。(json格式)
在 json 值中看起来像这样:
{
"codeblock_regex": "\\[pygments=(.*?)\\](.*?)\\[\\/pygments\\]"
}
在它被 JSON 解码后应该是这样的:
\[pygments=(.*?)\](.*?)\[\/pygments\]
这很糟糕,因为它不允许转义,我希望人们能够这样做:
\[pygments=lexer]some code here[/pygments]
和 pygments 来检测\
并忽略该代码块。我试过了
"(^\\\\)\\[pygments=(.*?)\\](.*?)\\[\\/pygments\\]"
之后应该是这样的json_decode
:
(^\\)\[pygments=(.*?)\](.*?)\[\/pygments\]
但是,这只会使它忽略所有内容,甚至是常规块,所以一定是我做错了。如您所见,我离正则表达式专家还差得很远。