我正在尝试将Remarkup转换为MediaWiki标记。
在Remarkup中,代码块使用以下语法:
```
some code
```
我想用MediaWiki的代码块语法代替它,如下:
<code>
some code
</code>
如您所见,我不能仅为此使用preg_replace(),因为```
的奇数出现应该用<code>
代替,甚至偶数出现的是</code>
。
如何在PHP中做到这一点?
答案 0 :(得分:6)
将自定义替换逻辑定义为preg_replace_callback
的回调,例如:
$count = 0;
$s1 = preg_replace_callback(
'/```/',
function($m) use (&$count) { ++$count; return $count % 2 ? '<code>' : '</code>'; },
$s
);
答案 1 :(得分:0)
您应该使用markdown解析器来做到这一点。
ParseDown只是多种选择之一:
$parsedown = new Parsedown();
echo $parsedown->text('
```
some code
```
');
结果将是:<pre><code>some code</code></pre>