Próbuję podzielić zdanie/wyrażenie na słowa za pomocą Regex.Jak podzielić frazę na słowa za pomocą Regex w C#
var phrase = "This isn't a test.";
var words = Regex.Split(phrase, @"\W+").ToList();
zawiera słowa "to", "ISN", "T", "a", "test"
Oczywiście to podniesienie apostrof i podział na ten temat. Czy mogę zmienić to zachowanie? Musi również być wielojęzyczny, obsługujący różne języki (hiszpański, francuski, rosyjski, koreański, itp.).
Muszę przekazać słowa do sprawdzania pisowni. W szczególności Nhunspell.
return (from word in words let correct = _engine[langId].Spell(word) where !correct select word).ToList();
Zamiast tego spróbuj podzielić na spacje? Czy masz dobrą próbkę przypadków użycia, aby zademonstrować, co Regex musi obsłużyć? – mellamokb
Podaję słowa do sprawdzania pisowni, więc muszę stracić interpunkcja. – Dean
Ponieważ chcesz podzielić na kilka różnych języków, musisz użyć tokenizera, który rozumie wymienione języki. W twoim przykładzie nie jest to jednoznacznie słowo, ale w innym języku "normalnie może nie być częścią słowa". Większość bibliotek do sprawdzania pisowni ma tokenizer lub parser, który może wykonać tę pracę za ciebie. – jessehouwing