我需要解析一个字符串才能获得有效时间(小时和秒)。
以下是源数据的示例:
7:00-7:30
7:30-8:00
8:00-8:30
...
19:30-20:00
我只需要第一次的价值。 所以对于第一线,我需要得到“7:00”。 此外,小时部分可以有一个或两个数字(7:00 / 20:00)。
有任何想法吗?
答案 0 :(得分:1)
你不需要正则表达式。只需将它拆分为-
,它将返回一个数组,其中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];
答案 1 :(得分: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];
您要查找的数据在行与行之间不变,因此这里不一定需要正则表达式。
答案 2 :(得分:0)
您可以使用
形式的正则表达式^(?: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