第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達式從字符串中提取時間信息

正則表達式從字符串中提取時間信息

C#
慕沐林林 2023-09-16 17:23:12
我正在從第三方設(shè)備接收數(shù)據(jù)。我需要提取兩條信息。我想我需要使用正則表達式,但我對此一無所知。您可以在下面找到一些示例字符串:TN        12  1 17:45:19.90400  7173TN         4  4 17:45:20.51800  7173TN        13  1 17:45:24.03200  7173TN         5  4 17:45:26.06300  7173TN         6  4 17:45:29.28700  7173TN        14  1 17:45:31.03200  7173我需要從每個字符串中提取兩條數(shù)據(jù):時間時間之前的數(shù)字所以我正在尋找的數(shù)據(jù)是這樣的:1 and 17:45:19.904004 and 17:45:20.518001 and 17:45:24.032004 and 17:45:26.063004 and 17:45:29.287001 and 17:45:31.03200該數(shù)字將始終存在,并且始終為 1、2、3 或 4。時間也將采用相同的格式,但我不確定是否會有個位數(shù)的小時數(shù)。所以不知道9點會不會顯示為9 或 09關(guān)于如何使用正則表達式提取它有什么建議嗎?
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經(jīng)驗 獲得超8個贊

我通常的方法是創(chuàng)建一個類來表示我們想要捕獲的數(shù)據(jù),并為其提供一個靜態(tài)Parse方法,該方法接受輸入字符串并返回填充有字符串中的數(shù)據(jù)的類的實例。然后我們可以循環(huán)遍歷這些行并使用每行的數(shù)據(jù)填充自定義類的列表。


例如:


class TimeData

{

    public TimeSpan Time { get; set; }

    public int Number { get; set; }


    public static TimeData Parse(string input)

    {

        var timeData = new TimeData();

        int number;

        TimeSpan time;


        if (string.IsNullOrWhiteSpace(input)) return timeData;


        var parts = input.Split(new char[0], StringSplitOptions.RemoveEmptyEntries);


        if (parts.Length > 2 && int.TryParse(parts[2], out number))

        {

            timeData.Number = number;

        }


        if (parts.Length > 3 && TimeSpan.TryParseExact(parts[3], "hh\\:mm\\:ss\\.fffff", 

            CultureInfo.CurrentCulture, out time))

        {

            timeData.Time = time;

        }


        return timeData;

    }

}

現(xiàn)在我們可以循環(huán)遍歷字符串列表,調(diào)用Parse每一行,并最終得到一個新的對象列表,其中包含與每行Time關(guān)聯(lián)的 和。Number另請注意,通過使用 aTimeSpan表示時間,我們現(xiàn)在擁有所有部分的屬性,例如Hour、Minute、Seconds、Milliseconds、TotalMinutes等:


var fileLines = new List<string>

{

    "TN        12  1 17:45:19.90400  7173",

    "TN         4  4 17:45:20.51800  7173",

    "TN        13  1 17:45:24.03200  7173",

    "TN         5  4 17:45:26.06300  7173",

    "TN         6  4 17:45:29.28700  7173",

    "TN        14  1 17:45:31.03200  7173",

};


List<TimeData> allTimeData = fileLines.Select(TimeData.Parse).ToList();


查看完整回答
反對 回復 2023-09-16
  • 1 回答
  • 0 關(guān)注
  • 142 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號