我怎樣才能從下面的字符串的時間差中提取一部分,我想(-3.30)從一個特定的字符串模式
[UTC - 3:30] Newfoundland Standard Time
,以及如何得到它從下面的字符串
得到空[UTC] Western European Time, Greenwich Mean Time
,我想獲得3.30以下字符串
[UTC + 3:30] Iran Standard Time
我怎樣才能從下面的字符串的時間差中提取一部分,我想(-3.30)從一個特定的字符串模式
[UTC - 3:30] Newfoundland Standard Time
,以及如何得到它從下面的字符串
得到空[UTC] Western European Time, Greenwich Mean Time
,我想獲得3.30以下字符串
[UTC + 3:30] Iran Standard Time
正則表達式:
\[UTC([\s-+0-9:]*)\]
的第一組是- 3:30
。 (含空格)
var regex = new Regex(@"\[UTC([\s-+0-9:]*)\]");
var match = regex.Match(inputString);
string timediff;
if(match.Groups.Count > 0)
timediff = match.Groups[1].Value.Replace(" ", String.Empty); // if you don't want those spaces
else
// no timediff here
您可以提取相關部分:
Assert(input.StartsWith("[UTC",StringComparison.InvariantCultureIgnoreCase));
string s=input.Substring(4,input.IndexOf(']')-4).Replace(" ","");
,並獲得了在幾分鐘內抵消此列使用:
if(s=="")s="0:00";
var parts=s.Split(':');
int hourPart=int.Parse(parts[0], CultureInfo.InvariantCulture);
int minutePart=int.Parse(parts[1], CultureInfo.InvariantCulture);
int totalMinutes= hourPart*60+minutePart*Math.Sign(hourPart);
return totalMinutes;
試試這個:
public string GetDiff(string src)
{
int index = src.IndexOf(' ');
int lastindex = src.IndexOf(']');
if (index < 0 || index > lastindex) return null;
else return src.Substring(index + 1, lastindex - index -1)
.Replace(" ", "").Replace(":", ".");
}
爲什麼downvote?我的答案適用於OP問題... – Marco
可能是一些正則表達式的愛好者。 – CodesInChaos
@CodeInChaos:是的,也許。我認爲正則表達式很棒,但是有這麼簡單的情況是沒有必要的......我錯了嗎?無論如何,我看到你是另一個受害者;) – Marco
既然你是在數字只是有興趣,你也可以用這個。
String a = "[UTC - 3:30] Newfoundland Standard Time";
String b = "[UTC] Western European Time, Greenwich Mean Time";
String c = "[UTC + 3:30] Iran Standard Time";
Regex match = new Regex(@"(\+|\-) [0-9]?[0-9]:[0-9]{2}");
var matches = match.Match(a); // - 3:30
matches = match.Match(b); // Nothing
matches = match.Match(c); // + 3:30
還支持+10小時偏移量。
支持13:30與24h格式無關,這是一個抵消。 – CodesInChaos
我也讓正則表達式更嚴格一點,檢查你正在看的部分是以'[UTC'開頭並且以']結尾' – CodesInChaos
謝謝,編輯爲支持+/- 10小時偏移量。 – Alex
您需要解析字符串以獲取在 - 之後出現的值。這一切都取決於將要通過的可能的字符串,如果它們都始終以[UTC - ...開頭,然後按'[UTC - '和後面的']'分割字符串。 – ThePower