我想从此1h30m45s
解析为具有组1h
,30m
,45s
的匹配项。
我管理过这样的事情:
var matches = Regex.Match(input, @"(\d+[ms|s|m|h|d])");
不幸的是,我得到了1h
和1h
组。怎么了我在Regex101上尝试了同样的方法,它似乎有效。
答案 0 :(得分:0)
您只能通过致电Match
获得一场比赛。这两个1h
仅是组0和组1。组0与匹配项本身相同。
您需要通过致电Matches
获得所有匹配项。然后,您可以将所有匹配的字符串转换成这样的列表:
var list = Regex.Matches(input, @"\d+[ms|s|m|h|d]").Cast<Match>().Select(x => x.Value).ToList();
该组是不必要的。