【发布时间】:2023-02-24 01:56:36
【问题描述】:
所以我正在做我自己的简单 Markdown 格式化程序。当我的代码块格式化程序遇到问题时,我正在修复最后一个问题。由于某种原因,它匹配了一个不应该匹配的额外时间。
$matches = [
"```\ncode block \n```",
"code block \n"
];
private function code_block_format($matches): string
{
// get a line
$regex = '/([^\n]*)\n?/';
// wrap that line into <code> elem + new line
$repl = '<code>$1</code>' . "\n";
// remove trailing linebreaks + spaces
$matches[1] = trim($matches[1]);
$ret = preg_replace($regex, $repl, $matches[1]); // this returns the badly formatted string
$ret = "<pre>\n" . $ret . "</pre>";
return $ret;
}
preg_replace 只返回 <code>code block</code>\n 但出于某种原因我得到了一个额外的元素 <code>code block</code>\n<code></code>\n
关于世界上什么可能导致它锁定到那里某处的“”字符串的任何帮助?
【问题讨论】: