正则表达式 - key, value键值对文本的解析

 

string str = "abc key=\"hello\" key2=test key3= key4=\"\"";
string pattern = @"(\S+)=""?([\w-.]+)""?"; //键值对正则表达式
MatchCollection result = Regex.Matches(str, pattern);
for (var i = 0; i < result.Count; ++i)
{
    Match item = result[i];
    Debug.Log($"===== match{i}: itemValue:{item.Value}, index:{item.Index}, len:{item.Length}, groupsCount:{item.Groups.Count}");
    if (3 == item.Groups.Count)
    {
        for (var j = 0; j < item.Groups.Count; ++j)
        {
            Group g = item.Groups[j];
            Debug.Log($"group{j}: v:{g.Value}, index:{g.Index}, len:{g.Length}, succ:{g.Success}");
        }
        var key = item.Groups[1].Value;
        var value = item.Groups[2].Value;
    }
}

 

打印结果:

group0对应整个匹配条目

group1对应第1个括号

group2对应第2个括号

 

posted @ 2023-06-29 01:01  yanghui01  阅读(75)  评论(0编辑  收藏  举报