我已填写空白表格,其中每个空白的长度不一致。我想用特殊代码替换此类库以与业务逻辑保持一致,以下是格式
It is raining ________ in the forest
The quick _______ dog jumps over ______________ fox
我要重新格式化上面的行,如下所示
It is raining [0] in the forest
The quick [0] dog jumps over [1] fox
如前所述,每个空白的char长度不一致,请确保使用正则表达式或不使用正则表达式在c#中编写可维护的代码
例外
有些条目没有任何空格,在这种情况下应该返回 整个段落是
Tim建议的代码非常适合我,Tim的答案如下所示。希望可以帮助某人
Dictionary<string, string> dctE = new Dictionary<string, string>();
Dictionary<string, string> dctT = new Dictionary<string, string>();
string jsonT = string.Empty, jsonH = string.Empty;
try
{
using (StreamReader r = new StreamReader(@"C:\samples\testmongo\testmongo\tamil1.txt"))
{
string langs = r.ReadToEnd();
var lines = langs.Split('\n');
for (int i = 1; i < lines.Length - 2; i += 2)
{
string tml = lines[i].Split(':')[1];
Regex regex = new Regex(@"_{2,}");
string[] partT = regex.Split(tml);
for (int j = 0; j < partT.Length; j++)
{
tml += partT[j] + "[" + j + "]";
}
//dctE[lines[i].Split(':')[0].Trim()] = lines[i].Split(':')[1].Trim();
dctT[lines[i - 1].Split(':')[0].Trim()] = tml;// lines[i].Split(':')[1].Trim();
}
}
jsonT = JsonConvert.SerializeObject(dctT);
}
catch(Exception eX)
{
Console.WriteLine(eX.Message);
}
finally
{
System.IO.File.WriteAllText(@"C:\samples\testmongo\testmongo\ta_yogs.json", jsonT);
dctE.Clear();
dctT.Clear();
}
答案 0 :(得分:5)
这是一个有效的脚本。此方法是在两个或更多个下划线(_{2,}
)上拆分输入字符串。然后,我们迭代字符串组件,并使用编号为for
的循环将它们连接在一起成为单个字符串,通过该循环我们可以确定替换占位符应该是什么。
string input = "The quick _______ dog jumps over ______________ fox";
Regex regex = new Regex(@"_{2,}");
string[] parts = regex.Split(input);
string output = "";
for (int i=0; i < parts.Length-1; i++)
{
output += parts[i] + "[" + i + "]";
}
output += parts[parts.Length-1];
Console.WriteLine(input);
Console.WriteLine(output);
The quick _______ dog jumps over ______________ fox
The quick [0] dog jumps over [1] fox