我想从此1h30m45s
分析到与组1h
,30m
,45s
。
我管理了这样的事情:
var matches = Regex.Match(input, @"(d+[ms|s|m|h|d])");
不幸的是,我正在获得组:1h
和1h
。那里怎么了?我在Regex101上尝试过同样的尝试,并且似乎可以工作。
您仅通过调用Match
来获得一场匹配。两个1h
S仅是组0和第1组。组0与比赛本身相同。
您需要通过调用Matches
来获取所有匹配。然后,您可以将所有匹配的字符串转换为这样的列表:
var list = Regex.Matches(input, @"d+[ms|s|m|h|d]").Cast<Match>().Select(x => x.Value).ToList();
组是不必要的。