2011-12-30 9 views
0

私は、テキストを置き換えることができ、正規表現のテキストを置き換えることができるプログラムを作成しようとしています。 だから私は正規表現とのトラブルを抱えていますpart..I'mに本当のnoobを置き換える:)c#regexは問題を置き換えます

private void button2_Click(object sender, EventArgs e) 
{ 
    if (File.Exists(textBox1.Text)) 
    { 

//これは定期的に交換してくださいされています

 if (checkBox1.Checked == false) 
     { 
      StreamReader sr = new StreamReader(textBox1.Text); 
      StreamWriter sw = new StreamWriter(textBox1.Text.Replace(".", "_new.")); 
      string cur = ""; 
      do 
      { 
       cur = sr.ReadLine(); 
       cur = cur.Replace(textBox2.Text, textBox3.Text); 
       sw.WriteLine(cur); 
      } 
      while (!sr.EndOfStream); 

      sw.Close(); 
      sr.Close(); 

      MessageBox.Show("Finished, the new file is in the same directory as the old one"); 
     } 

//これでありますREGEX置き換える:

 if (checkBox1.Checked == true) 
     { 
      System.Text.RegularExpressions.Regex g = new Regex(@textBox2.Text); 
      using (StreamReader r = new StreamReader(textBox1.Text)) 
      { 
       StreamReader sr = new StreamReader(textBox1.Text); 
       StreamWriter sw = new StreamWriter(textBox1.Text.Replace(".", "_new.")); 
       string cur = ""; 
       do 
       { 
        cur = sr.ReadLine(); 
        cur = cur.Replace(textBox2.Text, textBox3.Text); 
        sw.WriteLine(cur); 
       } 
       while (!sr.EndOfStream); 

       sw.Close(); 
       sr.Close(); 

      } 
      MessageBox.Show("Finished, the new file is in the same directory as the old one"); 
     } 


     button2.Enabled = false; 
    } 
    if (File.Exists(textBox1.Text) == false) 
    { 
    MessageBox.Show("Please select a file and try again."); 

    } 
} 
+0

何の質問がここにはありません。問題の内容を特定してください。例外が発生した場合は、詳細と投げられる場所を指定します。 – Jay

+1

私が見る限り、それをインスタンス化すること以外にあなたの正規表現では何もしていません... – canon

+0

どういうのですか?私は問題を見ると思うので、私は反応するように誘惑されますが、私は拘束を示します...悪い非質問の報酬はありません... –

答えて

2

を正規表現機能を置き換えるには、MSDN Regular Expression Replaceで見つけることができます ドキュメンテーション。

用途:Regex.Replace(input, pattern, replacement);

string inputFilename = textBox1.Text; 
string outputFilename = inputFilename.Replace(".", "_new."); 
string regexPattern = textBox2.Text; 
string replaceText = textBox3.Text; 

using (StreamWriter sw = new StreamWriter(outputFilename))) 
{ 
    foreach (string line in File.ReadAllLines(inputFilename)) 
    { 
     string newLine = Regex.Replace(line, regexPattern, replaceText); 
     sw.WriteLine(newLine); 
    } 
} 
+0

私はちょうど文脈に入れません。私はそれがファイルのすべての行でループするようにします – Zbone

+0

今、より完全な例を追加しました。 –

+0

オプションとして、File.ReadAllTextを使用して、ファイル全体の式をワンショットで実行できます。 – TrueWill

関連する問題