我正在创建一个博客站点,我将允许用户在 [代码] 代码内容 [/代码] 中输入代码
在一篇博文中会有多个像这样的 [代码] 块。
我想使用 Regex 找到每个 [Code] 块,然后将其替换为
<pre>command
<
我也想将>
pre 标签替换为 < >
现在我找到了有用的代码,可以帮助我解决这个问题,但我对正则表达式感到困惑,有人可以帮我解决这个问题。
static string ProcessCodeBlocks(string value)
{
StringBuilder result = new StringBuilder();
Match m = Regex.Match(value, @"\[pre=(?<lang>[a-z]+)\](?<code>.*?)\[/pre\]");
int index = 0;
while( m.Success )
{
if( m.Index > index )
result.Append(value, index, m.Index - index);
result.AppendFormat("<pre class=\"{0}\">", m.Groups["lang"].Value);
result.Append(ReplaceBreaks(m.Groups["code"].Value));
result.Append("</pre>");
index = m.Index + m.Length;
m = m.NextMatch();
}
if( index < value.Length )
result.Append(value, index, value.Length - index);
return result.ToString();
}