0

这可能看起来有点不寻常,但很可能只需要用户输入框中的一项。为了确定输入的字符串之间的差异以创建一个工作函数,我在 ; 上使用 regex.split

string[] customlister = Regex.Split(Regex.Replace(exttypes, @"s", ""), ";");
foreach(string c in customlister){
  lister.Add(c);
}

exttypes 用于文件的扩展,例如:

。可执行程序; 。蝙蝠; .css

全部用分号隔开。

如果列表中只有一个项目,即使它以分号结尾,列表器列表也不会获得任何信息。

有什么明显的我错过了吗?

答案:在 regex.replace() 中添加了 \s 而不是 s

添加

exttypes = Settings.Default.customext;

4

1 回答 1

0

我假设您Regex.Replace(exttypes, @"s", "")调用中的正则表达式模式应该是@"\s",而不是@"s"。前者将删除空格;后者将删除所有's'字符,将(例如)您的".css"扩展名转换为".c".

从 MSDN 文档中Regex.Split

如果在输入字符串中没有找到模式,则返回值包含一个元素,其值为原始输入字符串。

因此,错误可能在于您提供输入或解释结果的方式。Split调用是正确的。

于 2012-06-03T10:08:14.467 回答