public static function cut($sentence, $cut_all = false, $options = array())
{
$defaults = array('mode' => 'default');
$options = array_merge($defaults, $options);
$seg_list = array();
$re_han_pattern = '([\\x{4E00}-\\x{9FA5}]+)';
$re_skip_pattern = '([a-zA-Z0-9+#\\r\\n]+)';
preg_match_all('/(' . $re_han_pattern . '|' . $re_skip_pattern . ')/u', $sentence, $matches, PREG_PATTERN_ORDER);
$blocks = $matches[0];
foreach ($blocks as $blk) {
if (preg_match('/' . $re_han_pattern . '/u', $blk)) {
if ($cut_all) {
$words = Jieba::__cutAll($blk);
} else {
$words = Jieba::__cutDAG($blk);
}
foreach ($words as $word) {
array_push($seg_list, $word);
}
} else {
array_push($seg_list, $blk);
}
// end else (preg_match('/'.$re_han_pattern.'/u', $blk))
}
// end foreach ($blocks as $blk)
return $seg_list;
}