[英]Compare a text file with a pattern of text in c#?
我已經將文本文件與像“..”這樣的模式進行了比較,我只需要在文本文件中編寫不同的值...
while ((line = file.ReadLine()) != null)
{
foreach (Match match in Regex.Matches(line, @"(\w*)\.\."))
{
dest.WriteLine(match.Groups[1]);
}
counter++;
}
如何獲得不同的價值......任何建議?
如果尚未添加匹配,請將匹配添加到列表中? 或者只是保留已經添加的內容的運行列表? 像這樣的東西:
List<string> seen = new List<string>();
string line = string.Empty;
while ((line = file.ReadLine()) != null)
{
foreach (Match match in Regex.Matches(line, @"(\w*)\.\."))
{
if (!seen.Contains(line))
{
Console.WriteLine(line);
seen.Add(line);
}
}
}
編輯:我在這里解釋了你的意思; 如果你真的想要匹配組的值,用match.Groups [1]替換條件塊中的行.Value ...
我建議將值推送到數組中,並使用它來忽略重復:
ArrayList myValues = new ArrayList();
while ((line = file.ReadLine()) != null)
{
foreach (Match match in Regex.Matches(line, @"(\w*)\.\."))
{
if(!myValues.Contains(match.Groups[1])) {
myValues.Add(match.Groups[1]);
dest.WriteLine(match.Groups[1]);
}
}
counter++;
}
你如何將match.Group [1]添加到HashSet?
HashSet<string> hs = new HashSet<string>();
string line = "insert into depdb..fin_quick_code_met..jjj..depdb..jjj";
foreach (Match match in Regex.Matches(line, @"(\w*)\.\."))
{
hs.Add(match.Groups[1].ToString());
}
foreach (string item in hs)
Console.WriteLine(item);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.