查询

IntlRuleBasedBreakIterator::__construct()函数—用法及示例

「 创建一个新的 IntlRuleBasedBreakIterator 对象 」


函数名:IntlRuleBasedBreakIterator::__construct()

适用版本:PHP 7.0.0 及以上版本

用法:IntlRuleBasedBreakIterator::__construct() 函数用于创建一个新的 IntlRuleBasedBreakIterator 对象。

参数:

  • $rules:一个包含规则的字符串,用于定义断句规则。规则字符串必须符合 Unicode Text Segmentation 标准,可以使用 ICU Rule Syntax。
  • $breakType:可选参数,指定断句的类型。可以是以下常量之一:
    • IntlRuleBasedBreakIterator::BREAK_TYPE_WORD:按单词断句。
    • IntlRuleBasedBreakIterator::BREAK_TYPE_LINE:按行断句。
    • IntlRuleBasedBreakIterator::BREAK_TYPE_SENTENCE:按句子断句。
    • IntlRuleBasedBreakIterator::BREAK_TYPE_TITLE:按标题断句。

返回值:返回一个新的 IntlRuleBasedBreakIterator 对象。

示例:

$rules = <<<RULES
    !forward;
    \p{Z} & !\p{Zs} & !\p{Zl} & !\p{Zp} {rule_break: true};
RULES;

$breakIterator = new IntlRuleBasedBreakIterator($rules, IntlRuleBasedBreakIterator::BREAK_TYPE_SENTENCE);

$text = "This is a sample sentence. It demonstrates the usage of IntlRuleBasedBreakIterator.";

$breakIterator->setText($text);

foreach ($breakIterator as $boundary) {
    echo substr($text, $boundary[0], $boundary[1] - $boundary[0]) . PHP_EOL;
}

在上面的示例中,我们首先定义了一个包含断句规则的字符串。然后,我们使用 IntlRuleBasedBreakIterator::__construct() 函数创建了一个 IntlRuleBasedBreakIterator 对象,并指定断句类型为 IntlRuleBasedBreakIterator::BREAK_TYPE_SENTENCE。接下来,我们使用 setText() 函数设置要断句的文本。最后,我们使用 foreach 循环遍历断句边界,并打印出每个断句的内容。输出结果如下:

This is a sample sentence.
 It demonstrates the usage of IntlRuleBasedBreakIterator.
补充纠错
热门PHP函数
分享链接