0

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

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
4

3 回答 3

2

使用 Linq:

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

val.Contains(...)您可以根据自己的喜好使测试(

于 2013-06-10T18:52:13.490 回答
1

使用正则表达式替换来清理你的字符串

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

        Regex regex = new Regex(@"\[.*\]");
        string cleanStr = regex.Replace(str, "");
        string[] split = cleanStr.Split(new Char[] { ',', '-' });
于 2013-06-10T18:53:03.370 回答
0

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

这个 regex 解决方案要优雅得多,但是如果你不能使用 reg ex 这个应该这样做

于 2013-06-10T19:05:05.567 回答