2016-04-03 9 views
0

私はUDPで作業していますが、今はセンサーから送信された情報を捕捉しています。私は温度、光と動きである情報の送信から数字だけを抽出しようとしており、Regexでそれを達成しようとしています。しかし、「追加情報:入力文字列が正しい形式ではありません」というFormatExceptionが表示されます。Regex.Match throw FormatException

UdpClient udpClient = new UdpClient(1337); 
IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 0); 

while (true) 
{ 
    for (int i = 0; i < 5000; i++) 
    { 
     Byte[] receive = udpClient.Receive(ref endPoint); 
     string receiveDat = Encoding.ASCII.GetString(receive); 
     string result = Regex.Match(receiveDat, @"\D+").Value; 

     Console.WriteLine(Int32.Parse(result)); 
     Console.ReadLine(); 
    } 
} 
+0

'Regex.Match'はその例外をスローしません。その例外をスローする 'Int32.Parse'。 '\ d'は数字を取り、' \ D 'は数字を取る。 '\ D +'を '\ d +'に変更してください....のために 'while(true)'は何ですか? –

+0

@ M.kazemAkhgaryなぜあなたはコメントに回答を投稿しますか?私はあなたがこの回答を投稿し、それを削除したのを見ます。私は、コメントの目的は短い回答を提供するのではなく、直接答えを出さない点について話すことです。それは違った見方をしていますか? – BlueMonkMN

+0

@BlueMonkMN thats true。しかし、私はちょうど質問の一部に答えを与える。ループを見ると、それは完全に間違っていることに気づくでしょうし、理にかなっていません。 –

答えて

0

あなたがあなたの代わりに数字以外の数字をしたい場合は、あなたの正規表現で小文字\dを使用する必要があります。ここでは、コードです。資本金\Dは、数字だけに一致します。

関連する問題