Regex.Split()当只有一个项存在时,如何只将一个项放入数组中?

时间:2012-06-03 10:01:10

标签: c# regex arrays list split

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

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

exttypes用于扩展文件,例如:

.EXE; 。蝙蝠;的CSS

所有人都用半结肠分开了。

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

有没有明显的遗漏?

答案: 在regex.replace()

中添加\ s而不是s

已添加

exttypes = Settings.Default.customext;

1 个答案:

答案 0 :(得分:0)

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

来自Regex.Split上的MSDN文档:

  

如果在 input 字符串中找不到 pattern ,则返回值包含一个元素,其值为原始输入字符串。

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