Q
查找值内的字符串
2
A
回答
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}
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
检索值。
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"]);
}
0
Text.Split(new string[]
{"days", "hours", "minutes"},StringSplitOptions.RemoveEmptyEntries)
或
Text.Split(new string[]{"d", "h", "m"},StringSplitOptions.RemoveEmptyEntries)
返回您的号码ordinaly ...
相关问题
- 1. 查找字符串值
- 2. 字符串 - 查找空值
- 3. 如何查找分隔字符串内的数字字符串
- 4. MySQL查找字符串内字符串的结束位置
- 5. 如何在PHP中查找字符串内的字符串?
- 6. 试图查找字符串内的字符串
- 7. 使用-notcontains查找字符串内的字符串中的子字符串
- 8. 查找给定的字符串值列表中的字符串
- 9. 查找字符串中的字符串
- 10. 查找字符串中的字符串
- 11. 查找字符串中的字符串
- 12. C#RegEx查找字符串中的值
- 13. 查找字符串中的值
- 14. SQL - 查找先前的字符串值
- 15. RegExp查找SQL字符串的IN值
- 16. C中字符串的值查找表?
- 17. 查找2个字符串之间的字符串值
- 18. 从字符串值中查找特定的字符串数组
- 19. 查找字符串数组中的字符串值
- 20. 使用lldb查找字符串内存
- 21. 查找字符串
- 22. 查找字符串
- 23. 查找字符串
- 24. 查找字符串
- 25. 查找字符串
- 26. 查找字符串
- 27. 查找字符串
- 28. 查找字符串
- 29. 查找字符串
- 30. 查找字符串
他们总是在相同的顺序? (即天数,小时数和分钟数) – BlackBear
它将始终是格式10(日期分辨率)25(小时分隔符)15(分钟分隔符)吗?如果你愿意做一个正则表达式替换字母到一些分隔符(而另一个把多个分隔符变成一个),然后分割那个分隔符?或者,您可以对数字进行正则表达式匹配,并使用这些组来获取单个数量。 – John
你需要一些规范,只有2个例子不会削减它。 –