簡體   English   中英

如何使用正則表達式從字符串解析時間(小時,分鍾)?

[英]How to parse a time (hours, minutes) -from a string by using regex?

我需要解析一個字符串以獲得有效時間(小時和秒)。

這是源數據的示例:

7:00-7:30
7:30-8:00
8:00-8:30
...
19:30-20:00

我只需要第一次值。 因此,對於第一行,我需要獲得“ 7:00”。 此外,小時部分可以有一個或兩位數字(7:00 / 20:00)。

有什么想法嗎?

您不需要正則表達式。 只需在-上將其拆分,它將返回一個數組,該數組的第一個索引為0的元素將包含您想要的內容。

string date = "7:00-7:30"; bool val = date.IndexOf("-") > -1;
var splitter = val ? "-" : ":";
var arr = date.Split(splitter);
var firstpart = val ? arr[0] : arr[0] + ':' + arr[1];

您是否要使用Timespan?

 var str = "7:00-7:30";
 var time = TimeSpan.Parse(str.Split('-')[0]);

如果沒有,您可以使用

 var hours = str.Split('-')[0].Split(':')[0];
 var minutes = str.Split('-')[0].Split(':')[1];

您要查找的數據在行與行之間是不變的,因此這里真的不需要正則表達式。

您可以使用以下形式的正則表達式

^(?:1?[0-9]|2[0-3]):[0-6][0-9]

例如: http : //regex101.com/r/fM3kL7/1

var re = /^(?:1?[0-9]|2[0-3]):[0-6][0-9]/gm;
var str = '7:00-7:30\n7:30-8:00\n8:00-8:30\n...\n19:30-20:00';
var res = str.match(re);

將輸出為

7:00,7:30,8:00,19:30

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM