簡體   English   中英

C# 從文件中刪除以特定單詞開頭的行

[英]C# removing a line from file that starts with a specific word

從 C# 中以特定單詞開頭的文件中刪除一行的有效且優雅的方法是什么? 如果一行中的任何位置包含特定單詞,我知道如何刪除該行,但我無法刪除以特定單詞開頭的行。 謝謝!

首先,我們應該定義“以特定單詞開頭”的含義。

  • 如果 word 只是一個substring ,那么string.StartsWith就足夠了;
  • 如果 word 是后續字母,那么我們可以嘗試正則表達式

代碼。 Substring 案例:

 using System.IO;
 using System.Linq;

 ...

 string fileName = @"c:\myFile.txt";

 File.WriteAllLines(fileName, File
   .ReadLines(fileName)
   .Where(line => !line.StartsWith(myWord))
   .ToArray());

正則表達式案例:

 using System.IO;
 using System.Linq;
 using System.Text.RegularExpressions;

 ...

 string fileName = @"c:\myFile.txt";

 Regex regex = new Regex($@"^{Regex.Escape(myWord)}\b");

 File.WriteAllLines(fileName, File
   .ReadLines(fileName)
   .Where(line => !regex.IsMatch(line))
   .ToArray());

 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM