大家好,我需要一些帮助来创建一个将普通语法转换为人类可读格式的函数:
语法如下所示:
[OPENTAG]
(type)name:value
[OPENTAG]
(type)name:value
(type)name:value
(type)name:value
[/CLOSETAG]
[/CLOSETAG]
想把它变成这样:
[开放标签] (类型)名称:值 [开放标签] (类型)名称:值 (类型)名称:值 (类型)名称:值 [/关闭标签] [/关闭标签]
private string textFormater(string input)
{
string[] lines = Regex.Split(input, "\r\n");
int tabs = 0;
string newtext = "";
foreach (string line in lines)
{
Match m = Regex.Match(line, "\\[.*\\]");
bool isTop;
bool isTopClose = false;
string tabtext = "";
if (m.Success)
{
if (line.Contains("/"))
{
tabs--;
isTopClose = true;
}
else
{
tabs++;
}
isTop = true;
}
else
{
isTop = false;
}
if (isTop && !isTopClose && tabs == 1)
{
newtext += line;
}
else if (isTop && !isTopClose)
{
for (int i = 1; i <= tabs - 1; i++)
{
tabtext += "\t";
}
newtext += "\r\n" + tabtext + line;
}
else
{
for (int i = 1; i <= tabs; i++)
{
tabtext += "\t";
}
newtext += "\r\n" + tabtext + line;
}
}
return newtext;
}
我有 atm 解决方案,但代码如此混乱和缓慢,在 2mb 的文件中需要很长时间 :) 感谢您的帮助!
干杯