讨论数量:
你既然强制规定了规则,拆分后自由组装呗,就怕你这是个例子,最终还是要根据语义拆分,遍历关键词,然后拆分语句
$list = ['酒驾属于违法行为吗?'];
$current = [];
foreach(['酒驾', '违法行为'] as $key){
foreach($list as $val){
if(strpos($val, $key) !== false){
if(array_search($val, $current) !== false){
unset($current[array_search($val, $current)]);
}
$current = array_merge($current, [$key],explode($key, $val));
}
}
$list = $current;
}
dump(array_filter($current));
你自己优化吧
试试看:
$rs = preg_split('/(按照|酒驾|违法行为)/','酒驾属于违法行为吗?',-1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
推荐文章: