Разобрать строку (распарсить) - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет, как можно правильно распарсить строку приерного вида? msg = "temp1 = 25C, temp2=33, humidity = 85, light level = 57 \r"; Делаю вот так:
 [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;
            }));
В итоге у меня выводится в лейбл не первая подстрока, а вторая temp2=33
Либо последняя....

Решение задачи: «Разобрать строку (распарсить)»

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();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5