拆分分隔字符串并忽略/删除其他分隔字符串

时间:2013-06-10 18:43:07

标签: c#

我正在从配置文件中读取以逗号分隔的字符串列表。我需要检查以下步骤

1) check to see if the string has `[`, if it is then remove or ignore...
2) split `,` `-` //which i am doing below...

到目前为止,我能够做到这一点;

string mediaString = "Cnn-[news],msnbc";

string[] split = mediaString.Split(new Char[] { ',', '-' }); //gets me the bracket

我想要的是忽略/删除括号中的字符串,以便最终结果如下:

mediaString = 
                Cnn
                msnbc

3 个答案:

答案 0 :(得分:2)

使用Linq:

mediaString.Split(new Char[] { ',', '-' }).Where(val => !val.Contains('[')

您可以使测试(val.Contains(...))尽可能复杂(例如,开始和结束,正则表达式,特定值,调用通过DI框架提供的对象,如果您想要获得所有企业)。

答案 1 :(得分:1)

使用Regex replace来清理字符串

        string str = @"Cnn-[news],msnbc";

        Regex regex = new Regex(@"\[.*\]");
        string cleanStr = regex.Replace(str, "");
        string[] split = cleanStr.Split(new Char[] { ',', '-' });

答案 2 :(得分:0)

不使用LINQ或正则表达式: 像现在一样拆分你的字符串。 创建字符串类型的数据结构,例如:List。 运行结果数组,对于每个条目,检查它是否包含指定的字符,如果它没有将它添加到List中。 最后,您应该有一个包含所需结果的列表。

这个正则表达式解决方案更加优雅但是如果你不能使用reg ex这个应该这样做