Разобрать строку (распарсить) - C#
Формулировка задачи:
Всем привет, как можно правильно распарсить строку приерного вида?
msg = "temp1 = 25C, temp2=33, humidity = 85, light level = 57 \r";
Делаю вот так:
В итоге у меня выводится в лейбл не первая подстрока, а вторая temp2=33
[STAThread] private void DisplayLabelData(MessageType type, string msg) { string [] separatedCommaMessage = msg.Split(new char[] { ',' }); lbInsideTemperature.Invoke(new EventHandler(delegate { if (comPort.IsOpen) { lbInsideTemperature.Text = string.Empty; lbInsideTemperature.Font = new Font(lbInsideTemperature.Font, FontStyle.Bold); lbInsideTemperature.ForeColor = MessageColor[(int)type]; foreach (string s in separatedCommaMessage) lbInsideTemperature.Text = s; } // Если порт закрыт, очищаем поле; else lbInsideTemperature.Text = string.Empty; }));
Либо последняя....
Решение задачи: «Разобрать строку (распарсить)»
textual
Листинг программы
using System; using System.Text.RegularExpressions; namespace NETExperiments { class Program { static void Main(string[] args) { int humidity = 0; string source = "temp1 = 25C, temp2=33, humidity = 85, light level = 57 \r"; Regex reg = new Regex("humidity[\\s]?=[\\s]?([\\d]+)"); Match match = reg.Match(source); if (match.Success) { humidity = Int32.Parse(match.Groups[1].Value); } Console.WriteLine(humidity); Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д