我尝试将网络数据列表编辑为CSV文件,这意味着我需要修剪一些标题等。我制作了一系列字符串我想要删除但它并没有像我一样工作。 这是我的代码:
ng serve
我看到的输出有" Mac"和"地址"删除了,但没有其他人。例如:
"表,----------------------------------------- -
VLAN,端口 ----,-----------,--------,-----"
我在这里不理解什么?
答案 0 :(得分:2)
您要在空格字符上拆分源数据,而不是在换行符上拆分,因此您可以使用"表\ n -----"哪个不匹配。您需要使用正则表达式来查找要删除的单词,我建议:
string[] unwanted = new[] { "Mac", "Address", "Table", "Vlan", "Type", "Ports" };
textList.RemoveAll(x => unwanted.Any(us => Regex.IsMatch(x, $@"\b{us}\b", RegexOptions.Multiline)));
textList.RemoveAll(x => Regex.IsMatch(x, @"-+|^$", RegexOptions.Multiline));
此外,单个-
不会匹配任何内容,因此我添加了一行来删除连字符和空字。
答案 1 :(得分:1)
您正在搜索" --------------------------------------- ----"在[" - "," Mac",...]中并不存在,因此它不会被删除。
因为你用'来调用Split? '你没有得到任何个人破折号。
我认为你需要单独处理破折号,例如:
text = text.Replace("-", string.Empty);
编辑 - 在textList.RemoveAll
放置一个断点并查看textList的内容。您会发现,未删除的行不会与不需要的行匹配。
答案 2 :(得分:0)
这可能是区分大小写的问题: 试试这个:
textList.RemoveAll(x => unwanted.Contains(x, StringComparer.OrdinalIgnoreCase));