Я пытаюсь разделить предложение/фразу на слова, используя Regex.Как разбить фразу на слова с помощью Regex в C#
var phrase = "This isn't a test.";
var words = Regex.Split(phrase, @"\W+").ToList();
слово содержит "This", "ISN", "T", "а", "тест"
Очевидно, что это собирание апострофа и расщепления на этом. Могу ли я изменить это поведение? Он также должен быть многоязычным, поддерживающим различные языки (испанский, французский, русский, корейский и т. Д.).
Мне нужно передать слова в проверку орфографии. В частности, Nhunspell.
return (from word in words let correct = _engine[langId].Spell(word) where !correct select word).ToList();
разделите на пространствах вместо этого? У вас есть хороший пример прецедентов, чтобы продемонстрировать, что нужно для этого Regex? – mellamokb
Я передаю слова в проверку орфографии, поэтому мне нужно потерять пунктуацию. – Dean
Поскольку вы хотите разбить на несколько разных языков, вам нужно использовать токенизатор, который понимает указанные языки. В вашем примере явно не слово, а на другом языке «обычно не может быть частью слова». В большинстве библиотек проверки орфографии есть токенизатор или парсер, которые могут выполнять эту работу за вас. – jessehouwing