如何用正则表达式保存原行和修改行
本文关键字:修改 保存 何用 正则表达式 | 更新日期: 2023-09-27 18:10:27
我正在学习c#,我希望得到一些帮助。在人们的帮助下,我成功地实现了使用正则表达式编辑.inf文件部分,但我想在编辑之前保留原始的文本行。我已经将代码和. inf数据的示例放在下面,如果可能的话,我希望它看起来像什么,但只要数据在那里,它看起来就不会太麻烦。
else if (!chkbxintdial.Checked)
{
var lines = File.ReadAllLines(txtcurrent.Text).ToList();
var regex = new Regex(@"^[00]{2}");
var startFrom = lines.IndexOf("[Destinations]");
//Start replacing from the index of "[Destinations]"
for (int i = startFrom; i < lines.Count; i++)
{
//Assuming the ini section ends at an empty line - stop replacing
if (lines[i].Trim() == string.Empty)
break;
lines[i] = regex.Replace(lines[i], "+");
}
File.WriteAllLines(txtnewtariff.Text, lines);
我想做的例子。
原始文件[Destinations]
00="International",I,IV
0024195="Gabon Mobiles",I,IMT
0024197="Gabon Mobiles",I,IMT
后过程。
[Destinations]
00="International",I,IV
+="International",I,IV
0024195="Gabon Mobiles",I,IMT
+24195="Gabon Mobiles",I,IMT
0024197="Gabon Mobiles",I,IMT
+24197="Gabon Mobiles",I,IMT
不要完全替换行,而是添加到行上:
lines[i] += Environment.NewLine + regex.Replace(lines[i], "+");
还值得注意的是,存在专门用于操作. inf文件的工具,因此除了出于学术目的之外,确实没有必要这样做。虽然您的解决方案(排除这个小修复)似乎可以工作,但它对于较大的文件不是特别有效,在面对任意数据时也不是特别健壮。