我正在使用BreakIterator
将一个句子分成几个单词。这是我的创建方式:
std::unique_ptr<BreakIterator> word_break_iterator;
// "locale" and "status" are defined elsewhere
word_break_iterator.reset(BreakIterator::createWordInstance(locale, status));
这很好,但是我遇到的情况是句子中出现“ Something™”一词。迭代器将其分为“ Something ”和“ ™”。
我不希望它那样做。
我发现了有关break rules的信息,这似乎符合我的用例:
规则最常见的是描述应保持在一起且完整的文本范围。
我认为我需要将[\p{Letter}]+™;
规则添加到我的迭代器中。但是,在阅读BreakIterator
(http://icu-project.org/apiref/icu4c/classicu_1_1BreakIterator.html)上的API文档之后,我无法理解该怎么做。
如何将此自定义规则添加到我的BreakIterator
?