我需要在这个字符串中找到值:
10days25hours15minutes
我需要获取天数,小时数和分钟数,但字符串可以更改,如下所示:
10d25h15m
答案 0 :(得分:6)
您可以使用this正则表达式:
(?<days>\d+)d\D*(?<hours>\d+)h\D*(?<minutes>\d+)m\D*
匹配
10days25hours15minutes
和10d25h15m
。 (以及其他人)
您可能希望根据自己的需要使其更准确。
示例代码:
var match = System.Text.RegularExpressions.Regex.Match("10days25hours15minutes", @"(?<days>\d+)d\D*(?<hours>\d+)h\D*(?<minutes>\d+)m\D*", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
if (match.Success)
{
Console.WriteLine("Days: {0} Hours: {1} Minutes: {2}", match.Groups["days"], match.Groups["hours"], match.Groups["minutes"]);
}
答案 1 :(得分:4)
假设输入字符串由三个十进制数组成,每个十进制数以一个或多个非数字结尾,则可以使用以下正则表达式:
var match = Regex.Match("10days25hours15minutes", @"(\d+)\D+(\d+)\D+(\d+)\D+");
var result = new TimeSpan(
days: int.Parse(match.Groups[1].Value),
hours: int.Parse(match.Groups[2].Value),
minutes: int.Parse(match.Groups[3].Value),
seconds: 0);
// result == {11.01:15:00}
答案 2 :(得分:1)
Regex.Match(str, @"(?<days>[0-9]+)(d|days)
(?<hours>[0-9]+)(h|hours)
(?<minutes>[0-9]+)(m|minutes)");
然后使用match.Groups["days"].Value
,match.Groups["hours"].Value
,match.Groups["minutes"].Value
检索值。
答案 3 :(得分:0)
Text.Split(new string[]
{"days", "hours", "minutes"},StringSplitOptions.RemoveEmptyEntries)
或者
Text.Split(new string[]{"d", "h", "m"},StringSplitOptions.RemoveEmptyEntries)
尽快归还你的号码......