Skip to main content

Перечисление TextUnit

В таблице представлены варианты разделения текста на диапазоны. Используется в методах Position::getCurrentRange(), Position::getNextRange() и Position::getPreviousRange().

ЗначениеОписание
TextUnit::CharacterРазделение по символам
TextUnit::WordРазделение по словам (символы-разделители считаются отдельными словами)
TextUnit::SentenceРазделение по предложениям (разделители после предложения считаются его частью)
TextUnit::ParagraphРазделение по абзацам

Пример​


Range secondSentence = document.getRange().getBegin().getNextRange(TextUnit::Sentence).get();
Range firstSentenceLastWord = secondSentence.getBegin().getPreviousRange(TextUnit::Word).get();

while (firstSentenceLastWord.getContentEnd().compare(firstSentenceLastWord.getBegin()) == 1)
{
firstSentenceLastWord = firstSentenceLastWord.getBegin().getPreviousRange(TextUnit::Word).get();
}
Range thirdSentenceFirstLetter = secondSentence.getContentEnd().getCurrentRange(TextUnit::Character).get();

std::printf("%s", secondSentence.extractText().c_str());
// Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
std::printf("%s", firstSentenceLastWord.extractText().c_str());
// aliqua
std::printf("%s", thirdSentenceFirstLetter.extractText().c_str());
// D