c# - 从文本文件中删除第一行并将其余单词放入与空格分隔的数组中,

标签 c# regex streamreader

我有以下格式的文本文件

432 23 34 45 56 78 90 67 87 90 76 43 09 ..........

我想删除第一行并将其余单词插入到一个与空格分隔的数组中。

我写了下面的代码来通过删除空格来获取单词

    StreamReader streamReader = new StreamReader("C:\\Users\\sample.txt"); //get the file
    string stringWithMultipleSpaces = streamReader.ReadToEnd(); //load file to string
    streamReader.Close();

    Regex newrow = new Regex(" +"); //specify delimiter (spaces)
    string[] splitwords = r.Split(stringWithMultipleSpaces); //(convert string to array of words)

一旦我在 string[] splitwords 行上放置了一个调试点,我就可以看到下面的输出

enter image description here

如何删除第一行并从数组索引 [0] 中获取其余单词?

最佳答案

您需要使用所有空格进行拆分,而不仅仅是一个普通空格。

使用 @"\s+" 模式来匹配 1+ 个空白符号:

string[] splitwords = Regex.Split(stringWithMultipleSpaces, @"\s+");

另一种方法是逐行读取文件,并且 - 如果始终只有类似数字且不存在 Unicode 空格 - 使用普通 String.Split()

有点像

var results = new List<string>();
using (var sr = new StreamReader("C:\\Users\\sample.txt", true))
{
    var s  = string.Empty;
    while ((s=sr.ReadLine()) != null)
    {
        results.AddRange(s.Split());
    }
}

关于c# - 从文本文件中删除第一行并将其余单词放入与空格分隔的数组中,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38011605/

相关文章:

c# - Xamarin 错误 : Unable to open text symbol file obj\Debug\R. txt:权限被拒绝 "R.txt: Permission denied"

regex - 在 bash 中查找 2 个字符串中的指定字符串

c# - 在流上使用 xpath

c# - StreamReader 提示文件不存在,但它确实存在

F# 中的 C# 扩展方法

c# - 在使用 CaSTLe Windsor IoC 容器注册组件期间设置 Name 属性

javascript - Cookie 在 HttpResponseMessage 中可见,但在 Javascript 中不可见

regex - Sed 在命令行中不起作用,但是在线测试 regex101 中的正则表达式有效

javascript - 将字符串转换为 shell 参数

c# - 使用流阅读器从 .txt 文件读取后写入控制台的文本仅部分出现