您可以在不使用 REGEX 的情况下做到这一点,例如:
string str = "02:00,04:00,06:00#03:00";
TimeSpan temp;
bool ifValid = str.Split(new[] { ',', '#' })
.All(r => TimeSpan.TryParseExact(r, @"hh\:mm",CultureInfo.InvariantCulture, out temp));
您可以将其提取到如下函数中:
public bool CheckValid(string str)
{
TimeSpan temp;
return str.Split(new[] { ',', '#' })
.All(r => TimeSpan.TryParseExact
(r,
@"hh\:mm",
CultureInfo.InvariantCulture,
out temp));
}
然后检查工作如下:
List<string> validStrings = new List<string>
{
"02:00#03:00",
"02:00,04:00,06:00#03:00",
"02:00#03:00,06:00"
};
Console.WriteLine("VALID Strings");
Console.WriteLine("============================");
foreach (var item in validStrings)
{
Console.WriteLine("Result: {0}, string: {1}", CheckValid(item), item);
}
Console.WriteLine("INVALID strings");
Console.WriteLine("============================");
List<string> invalidStrings = new List<string>
{
"02:00,#03:00",
"02:00#03:00,",
};
foreach (var item in invalidStrings)
{
Console.WriteLine("Result: {0}, string: {1}", CheckValid(item), item);
}
输出将是:
VALID Strings
============================
Result: True, string: 02:00#03:00
Result: True, string: 02:00,04:00,06:00#03:00
Result: True, string: 02:00#03:00,06:00
INVALID strings
============================
Result: False, string: 02:00,#03:00
Result: False, string: 02:00#03:00,