我需要解析下面的字符串,并且想使用正则表达式,但可以找到正确的方法。
输入样本(标记分隔符是 ; 并且标记内部是任何 Char 即 M/W/D )
1W4;2W35;4M35;13W108
预期产出
List<string> points = new List<string>() {"1W", "2W", "4M", "13W"};
List<int> intervals = new List<int>() {4, 35, 35, 108};
谢谢你的帮助。
请您参考如下方法:
您可以使用 string.Split 将字符串拆分为标记。然后使用正则表达式解析每个标记:
var exp = new Regex(@"^(?<point>\d+[a-zA-Z])(?<interval>\d+)$");
var str = "1W4;2W35;4M35;13W108";
var tokens = str.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries);
foreach (var token in tokens)
{
var match = exp.Match(token);
if (match != null)
{
points.Add(match.Groups["point"].Value);
intervals.Add(int.Parse(match.Groups["interval"].Value));
}
}
