[英]Parse value from string with structure “key=value”
我有一個像這樣的字符串:
SUBJECT=Some text here\r\n
VALUE=19355711\r\n
RCV_VALUE=2851404175\r\n
RESULT=1\r\n
CNCODE=0\r\n
KEY1=1\r\n
KEY2=2
現在我需要從這個字符串中獲取RCV_VALUE和RESULT的值。 字符串中這些鍵的位置可能會有所不同。 它們也可以位於字符串的開頭或/和末尾。
RESULT的值我必須得到int
,RCV_VALUE的值必須得到string
。
獲取這些鍵的值的最佳方法是什么,無論它們在字符串中的位置如何?
最好的選擇是正則表達式
var regex=new Regex(@"RCV_VALUE=(?<value>\d+)");
var match=regex.Match(inputString);
var rcv_value=int.Parse(match.Groups["value"].Value);
您可以使用正則表達式輕松實現此目的,如下例所示。
Regex expr = new Regex(@"^(?<Key>.*)=(?<Value>.*)$", RegexOptions.IgnoreCase | RegexOptions.Singleline);
var m = expr.Match("SUBJECT=Some text here\r\n");
var key = m.Groups["Key"].Value;
var value = m.Groups["Value"].Value;
// or
var kvp = new KeyValuePair<string, string>(m.Groups["Key"].Value, m.Groups["Value"].Value);
或者,如果您不想使用正則表達式,可以使用=
作為分隔符拆分字符串,然后成對地解析值。
嘗試
var RCV_VALUE = Regex.Match(myString, "RCV_VALUE=(\d+)").Groups[1].Value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.