[英]splitting a string value c#
我有一个字符串值,希望仅获得工程师的姓名,例如,在这种情况下为“ CARL HARRISON”。
"{ Engineer = CARL HARRISON, HandHeldAvailability = H, HASHHT = True, HHTSTATUS = }"
名称可以是不同的长度,但始终采用相同的格式。
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
我用_
代替了前导空格和尾随空格,以使它们清晰可见。
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将为false),并允许在输入格式更改的情况下轻松对其进行更改。 您也可以轻松匹配其他部分。
编辑:如果您多次调用此函数(即循环),则还可以编译正则表达式:
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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.