【发布时间】:2010-05-25 19:06:23
【问题描述】:
我正在尝试解析文本格式。我想用反引号(`)标记内联代码,就像 SO 一样。规则应该是,如果你想在内联代码元素内使用反引号,你应该在内联代码周围使用双反引号。
像这样:
``用反引号(`)标记内联代码``
由于某种原因,我的解析器似乎完全跳过了双反引号。下面是执行内联代码解析的函数的代码:
private string ParseInlineCode(string input)
{
for (int i = 0; i < input.Length; i++)
{
if (input[i] == '`' && input[i - 1] != '\\')
{
if (input[i + 1] == '`')
{
string str = ReadToCharacter('`', i + 2, input);
while (input[i + str.Length + 2] != '`')
{
str += ReadToCharacter('`', i + str.Length + 3, input);
}
string tbr = "``" + str + "``";
str = str.Replace("&", "&");
str = str.Replace("<", "<");
str = str.Replace(">", ">");
input = input.Replace(tbr, "<code>" + str + "</code>");
i += str.Length + 13;
}
else
{
string str = ReadToCharacter('`', i + 1, input);
input = input.Replace("`" + str + "`", "<code>" + str + "</code>");
i += str.Length + 13;
}
}
}
return input;
}
如果我在某些东西周围使用单个反引号,它会正确地将其包装在 <code> 标记中。
【问题讨论】:
-
RegEx 不是更适合这份工作吗?
标签: c# text-parsing