我有
之类的字符串(GMT -4:00)Puerto Rico
(GMT -3:30)Newfoundland
(GMT -3:00)Asuncion
(GMT +2:00)Athens
我如何从这些字符串中提取时间?
这是我糟糕的镜头:\([0-9](.*?)\)
结果应如下所示:-4:00, -3:30, -3:00...
我对此非常不满。
答案 0 :(得分:3)
您可以仅使用
[-+]\d+:\d+
请参阅regex demo
<强>详情:
[-+]
- 匹配-
或+
\d+
- 一位或多位:
- 冒号\d+
- 一位或多位数。C#:
var results = Regex.Matches(s, @"[-+]\d+:\d+", RegexOptions.ECMAScript)
.Cast<Match>()
.Select(m => m.Value)
.ToList();
处理每个单独输入的可能替代non-regex solution:
var s = "(GMT -4:00)Puerto Rico";
var res = s.Split(new[] {" ", ")"}, StringSplitOptions.RemoveEmptyEntries)
.Skip(1)
.FirstOrDefault();