从文本中获取一行的一部分作为字符串

Get as string a part of an line from a text

我有一个文件的一些行,我必须从它作为字符串获取第一个字符。 正文是:

...
(spaces) UWORD (spaces) /* data */

(spaces) UBYTE (spaces) /* data */
....

我必须从没有任何空格或 /*data */

的所有行中获取 "UWORD" 和 "UBYTE" 以及更多内容
while ((line = Readed.ReadLine()) != null)
{
    if (line.Contains("data") )
    {
             // DO WHAT? 
    }
}

您可以将此 Split 重载与 StringSplitOptions.RemoveEmptyEntries 一起使用。它将:

Splits a string into substrings based on the strings in an array.

在这种情况下,用空格分割字符串。现在你只需要取第一个元素:

string input = @"   UWORD     /* data */ ";
string value = input.Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries).First();

编辑:看起来您正在扫描代码并检索数据类型名称。在这种情况下,您可能不仅有空格,还有制表符。如果是这种情况,只需将制表符也包含到包含分隔符的字符串数组中:

string value = input.Split(new string[] {" ", "\t"}, StringSplitOptions.RemoveEmptyEntries).First();

显然也可以捕获all whitespace characters。这是做到这一点的技巧:

string value = input.Split(new char[0], StringSplitOptions.RemoveEmptyEntries).First();