我正在处理一项任务,我在其中生成从文本文件读取的字符串对象数组。我不能使用正则表达式 \W 运算符,因为如果一个单词包含撇号 (') 或连字符 (-) 作为单词的一部分,则必须包含它。\W 在这些标记上分裂。但是,我需要它拆分除字母以外的所有其他内容,包括数字。所以我的字符串应该包括 az,AZ,-,' 格式。
我的代码在下面,它给了我几乎正确的输出,但我在数组中有空单元格,它正在读取行尾(或新行)。我不知道如何在保留我拥有的拆分的同时排除那些 (\n\r)。建议?
try
{
using (StreamReader reader = new StreamReader("file.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
string[] words = SplitWords(line.ToLower());
foreach (string aString in words)
{
Console.WriteLine(aString);
}
}
}
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
static string[] SplitWords(string lines)
{
return Regex.Split(lines, @"[^-'a-zA-Z]");
}