2016-10-26 4 views
-1
static void Main(string[] args) 
    { 
     StreamReader oReader; 
     if (File.Exists(@"C:\cmd.txt")) 
     { 
      Console.WriteLine("IMAGE"); 
      string cSearforSomething = Console.ReadLine().Trim(); 
      oReader = new StreamReader(@"C:\cmd.txt"); 
      string cColl = oReader.ReadToEnd(); 
      string cCriteria = @"\b" + cSearforSomething + @"\b"; 
      System.Text.RegularExpressions.Regex oRegex = new System.Text.RegularExpressions.Regex(cCriteria, RegexOptions.IgnoreCase); 



      int count = oRegex.Matches(cColl).Count; 
      Console.WriteLine(count.ToString()); 
     } 
     Console.ReadLine(); 
    } 

"IMAGE"という文字列はファイル内で計算できません。私のコードは間違っていますか?c#特定の単語がtxtファイル内で何時に発生するかを調べる

+0

'File.Exists()を'使用しないでください。これは、ファイルのオープンに失敗した場合に例外を処理するだけの場合です。 –

+0

@JoelCoehoornはまだmytxtファイルで発生する時間を計算できません。 – peter

+1

ここでLinqを使用できます。 cCol1.Count(x => x == cSearchForSomething) –

答えて

0

システムを使用して、このコード

public static void Main() 
{ 
    var str = File.ReadAllText(@"C:\cmd.txt"); 
    var searchTerm = "IMAGE"; 

    var matches = Regex.Matches(str, @"\b" + searchTerm + @"\b", RegexOptions.IgnoreCase); 

    Console.WriteLine(matches.Count); 
    Console.ReadLine();    
} 
+0

* OPはなぜそれを試すべきですか?潜在的にそれが「仕事」になるのは何ですか?それはオリジナルと同じように見えますが、ちょっと整理されています。 – user2864740

+0

@ user2864740私はOPのコードが何に作用しないのか分かりません。おそらく 'File.Exists'チェックか何か。私はOPのコードを 'File.Exists'チェックなしで書き直し、私の側でそれをテストして、それが動作していることを確認し、OPがそれに関するOPのフィードバックを待つようにします。しかし、OPはそれを受け入れ、私は理由を知らない。 –

0

https://msdn.microsoft.com/en-us/library/az24scfc.aspxによれば、 "\ b"はバックスペースに一致します。正規表現にマッチしない理由を説明しているかもしれません。

+0

"*文字クラス*では、[\ b]はバックスペース\ u0008に一致します。" - 文字クラス\ bの外側は単語境界に一致します。 msgstr "" \ b(文字クラス外)\ w(英数字)と\ W(英数字以外の文字)の境界に一致する必要があります。 " – user2864740

0

をお試しください。 using System.Text.RegularExpressions;

名前空間ConsoleApplication8 {クラスプログラム {

static void Main(string[] args) 
    { 
     string cColl = System.IO.File.ReadAllText(@"C:\some.txt"); 
     //string cColl = "This is similar, similar, similar, similar, similar, similar"; 
     Console.WriteLine(cColl); 

     string cCriteria = @"\b" + "similar" + @"\b"; 
     Regex oRegex = new Regex(cCriteria, RegexOptions.IgnoreCase); 
     int count = oRegex.Matches(cColl).Count; 
     Console.WriteLine(count.ToString()); 

     Console.ReadLine(); 
    } 




} 

}

関連する問題