我正在从配置文件中读取以逗号分隔的字符串列表。我需要检查以下步骤
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
答案 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这个应该这样做