使用正则表达式纠正关联

时间:2013-10-29 16:44:06

标签: c# regex

我有2个课程,主题和设置。 主题具有TopicName和设置列表作为属性。 设置有一个键,一个值和另一个设置列表作为可选项。

截至目前,我有一个主题列表和我从数据库中检索到的设置列表。 我想将好的设置和好的(主题/设置)

联系起来

示例:

Topic#1.TopicName = Grandpa
Setting#1.Key = Grandpa/Papa
Setting#2.Key = Grandpa/Mama
Setting#3.Key = Grandpa/Papa/Baby

根据我的格式,主题#1有一个设置列表(设置#1和设置#2) 设置#2包含设置列表(设置#3)

我的代码现在是

var topicList = new List<Topic>(); 
foreach (var topics in topicRetrieved)
{
    var topic = new Topic()
                {
                    TopicName = topics.Key,
                    Override = topics.Override,
                    Source = topics.Source,
                };

    foreach (var topicSettings in topicSettingRetrieved)
    {
        string parent = topic.TopicName + "/";
        if(System.Text.RegularExpressions.Regex.IsMatch(topicSettings.Key,parent))
        {
        var setting = new Setting
                        {
                        Key = topicSettings.Key,
                        Value = topicSettings.Value
                        };
        topic.SettingCollection.Add(setting);
        }
    }
    topicList.Add(topic);
    }
    return topicList.ToArray();
}

我现在的问题是主题#1将始终具有设置​​列表 (#1,#2和#3)因为它包含字符串“Grandpa”。 我只希望主题#1包含设置#1和设置#2 我希望能够将设置#3添加到正确的位置(设置#2) 设置#3 =爷爷/爸爸/宝贝------&gt;设置#2 =爷爷/爸爸 然后 我的设置#2将转到主题#1 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

试试这个string parent = "^"+ topic.TopicName + "/[^/]*$";