异想天开

What's the true meaning of light, Could you tell me why

php正则表达式匹配代码段

日期:2017-10-04 17:20:09
  
最后更新日期:2017-10-07 16:37:58

博客显示代码段的插件为SyntaxHighlighter, 书写时将代码段嵌入在code标记内,然后前端用js替换为插件的pre标记。提交内容到后台时, 需要将code标记内的html标记替换为字符形式,否则前端会认为是html标记。例如php后台,可以用htmlspecialchars函数替换。如下示例:

日志内容

日志内容

用正则表达式匹配时,容易将多个代码段匹配成一个代码段。 这里需要用正则表达式非贪婪模式。 代码

正则表达式的?,当用在*后面时,表示非贪婪模式。反斜杠1表示为正则表达式前面的第一个匹配,这里则为code或者html,^表示非字符的意思。搞笑的是,之前那个提取替换code之间代码的正则表达式,看了半天没看懂,当时是借用了wordpress里面的正则表达式。这次换上了简单可理解的版本。