テキスト ファイルから読み取った文字列オブジェクトの配列を生成する割り当てに取り組んでいます。単語にアポストロフィ (') またはハイフン (-) が単語の一部として含まれている場合、それを含める必要があるため、正規表現の \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]");
}