我有一個字符串值,希望僅獲得工程師名稱在這種情況下,「CARL HARRISON」。拆分字符串值c#
"{ Engineer = CARL HARRISON, HandHeldAvailability = H, HASHHT = True, HHTSTATUS = }"
名稱可以是不同的長度,但總是會有相同的格式。
我有一個字符串值,希望僅獲得工程師名稱在這種情況下,「CARL HARRISON」。拆分字符串值c#
"{ Engineer = CARL HARRISON, HandHeldAvailability = H, HASHHT = True, HHTSTATUS = }"
名稱可以是不同的長度,但總是會有相同的格式。
string regex = @"{ Engineer = (?<Name>.*), HandHeldAvailability";
string input = "{ Engineer = CARL HARRISON, HandHeldAvailability = H, HASHHT = True, HHTSTATUS = }";
string engineerName = "";
Match match = Regex.Match(input, regex);
if(match.Success && match.Groups["Name"] != null)
{
engineerName = match.Groups["Name"].Value;
}
一個正則表達式,可以驗證輸入字符串匹配(否則match.Success會是假的),並可以輕鬆地改變的情況下,輸入格式的變化。您還可以輕鬆地匹配其他部分。
編輯:如果調用此函數很多(即在一個循環中),那麼你也可以編譯正則表達式:
public class YourDataClass {
private static Regex regex = new Regex(@"{ Engineer = (?<Name>.*), HandHeldAvailability", RegexOptions.Compiled);
public string GetNameFromInput(string input) {
var result = string.Empty;
Match match = regex.Match(input);
if(match.Success && match.Groups["Name"] != null)
{
result = match.Groups["Name"].Value;
}
return result;
}
}
string name = s.Split(',')[0].Split('=')[1].Trim();
說明:Split
由,
給出
{ Engineer = CARL HARRISON
_HandHeldAvailability = H
_HASHHT = True
_HHTSTATUS = }
考慮的這個第一元素給出
{ Engineer = CARL HARRISON
Split
通過=
給出:
{ Engineer_
_CARL HARRISON
趁着這個第二個元素賦予
_CARL HARRISON
使Trim
給出:
CARL HARRISON
我已經更換領導和_
尾隨空格,使他們明確。
很好地完成。正則表達式對於這個東西來說非常棒。 – AboutDev 2010-01-05 00:33:26
I(over?)現在甚至可以使用Regex進行最簡單的字符串匹配/操作操作 - 一旦你學會了它們,它們就變得令人上癮:-) – 2010-01-05 00:43:08