我有一个运行良好的小型 bbcode 解析器,除了 pre 和 code 标记。我需要让整个解析器函数忽略 pre 和 code 标记。我将如何实现这一目标?如果有人有想法,请告诉我。
我想要做的是,当我使用<pre>
or<code>
标记时,它会忽略内部使用的 bbcode,但会在页面上的其他任何地方解析它。我认为它可以通过 regex 和 preg_match 或 preg_replace 来实现。
function parse($text) {
$search = array(
'/\*\*(.*?)\*\*/is', // bold
'/\/\/(.*?)\/\//is', // italic
'/__(.*?)__/is', // underline
); #search
$replace = array(
'<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
); #replace
return preg_replace($search, $replace, $text);
} #parse
<pre>
** Bold Text **
// Italic Text //
__ Uderline Text __
</pre>
<code>
** Bold Text **
// Italic Text //
__ Uderline Text __
</code>
任何帮助都会受到欢迎。谢谢你。