2016-12-28 3 views
2

I次の文字列を持っている:C# - Regexを使用してNULL文字を置き換えるにはどうすればよいですか?

メモ帳で
< \0\"\0E\0x\0t\0e\0n\0s\0i\0b\0i\0l\0i\0t\0y\0,\0v\0e\0r\0s\0i\0o\0n\0=\0\\\0\"\07\0.\00\0.\03\03\00\00\0.\00\0\\\0\"\0,\0p\0u\0b\0l\0i\0c\0K\0e\0y\0T\0o\0k\0e\0n\0=\0\\\0\"\0B\00\03\0F\05\0F\07\0F\01\01\0D\05\00\0A\03\0A\0\\\0\"\0,\0f\0i\0l\0e\0V\0e\0r\0s\0i\0o\0n\0=\0\\\0\"\07\0.\00\0.\09\04\06\06\0.\01\0\\\0\"\0,\0c\0u\0l\0t\0u\0r\0e\0=\0\\\0\"\0n\0e\0u\0t\0r\0a\0l\0\\\0\"\0\"\0=\0h\0e\0x\0(\07\0)\0:\07\08\0,\0\\\0" 

++に見える何かのように: enter image description here

私は正規表現を使用して、すべての「NULL」のインスタンスを交換したいのですが、私は得るように見えることはできません正しい検索パターン。これは私のコードです:

 FileInfo file = new FileInfo(path); 
     string line; 
     using (StreamReader reader = new StreamReader(file.FullName)) 
     { 
      while ((line = reader.ReadLine()) != null) 
      { 
       Regex rgx = new Regex(@"^[\00|\0]"); 
       line = rgx.Replace(line, ""); 

       System.Console.WriteLine(line); 
       CurrentLine++; 
      } 
     } 

ただし、これはテキストを置き換えるものではありません。これに対する正しい検索パターンは何でしょうか?

答えて

2

あなたの正規表現の問題は、^文字です。つまり、あなたの正規表現は、NULL文字の文字列の先頭を見るだけです。それをやめて、あなたのコードは正常に動作します。

+0

これは、そのトリックでした。ありがとう! Regex rgx = new Regex(@ "[\ 00 | \ 0]"); ' –

+0

私は助けてくれると嬉しいです。ハッピーコーディング:) – Nasreddine

1

あなただけのヌル文字はあなただけString.Replaceを使用することができませんでし置き換えるために探している場合:

line = line.Replace("\0", ""); 
2

あなたはString.Replace()を使用することができ、そのために正規表現を必要としません:

line = line.Replace("\u0000", ""); 
関連する問題