来替换,写入。以减少文章的操作量。当然正则表达式也会浪费很大的资源。
当然,在PHP代码的preg_replace函数使用上面的正则,进行反向引用时,需要对正则稍作修改。给lang=""中间的一个组名。正则修改为
[<\[]coolcode[^<>\[\]]*?lang=\\?"([a-z]+\\?)"[^<>\[\]]*?[>\]]
PHP的替换代码为
$contents = preg_replace(''/[<|[]coolcode[^>[\]]*?lang=\\\\?"([^"]+?)\\\\?"[^>[\]]*?[>|\]]/i'',''[code lang="\\1"'',$contents);
其中正则的i修饰符标识不区分大小写。
还有,别忘记了coolcode的结束标识和[/coolcode]要替换成[/code]。
mysql里执行两句sql即可
复制代码 代码如下:
UPDATE wp_posts SET post_content = REPLACE(post_content,''</coolcode>'',''[\/code]''); //注意后面多了个反斜杠,记得去掉
UPDATE wp_posts SET post_content = REPLACE(post_content,''[/coolcode]'',''[\/code]''); //注意后面多了个反斜杠,记得去掉
总结:
本文牵扯的正则表达式并无高级用法,都是平常很简单的用法。关于PCRE引擎正则表达式的递归(迭代),组命名,反向引用,零宽断言等,CFC4N会在以后的时间里,找合适的例子写出来。当然,这些高级用法,CFC4N在帮朋友写的正则表达式里已经用到了,大家可以看看,欢迎批评和指点。
PS:如果需要coolcode转SyntaxHighlighter的完整PHP程序,留言即可,我抽空写出来。