You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP提取下方文本中的前五句?

用PHP提取文本前五句的解决方案

没问题,我来帮你搞定这个需求!要提取这段文本里的前五句,咱们可以按以下步骤来实现:

思路分析

首先得明确句子的分隔规则——这段文本里的句子大多是以句号、感叹号、问号结尾的,所以我们可以用正则表达式把文本按这些标点后的空白字符分割,得到独立的句子数组,再从中取前五个即可。

代码实现

你可以直接运行这段PHP代码,就能得到想要的结果:

<?php
// 待处理的原始文本
$originalText = "西塞罗曾发表著名演说反对他的政治对手卢修斯·塞尔吉乌斯·喀提林。今天天气很好!有时《反喀提林第一演说》会被用作样本:quo usque tandem abutere, Catilina, patientia nostra? Quam diu etiam furor iste tuus nos eludet? 西塞罗在写信。或许并非如此。";

// 用正则分割句子:匹配.!?后的空白字符作为分割点,保留句子末尾的标点
$sentenceArray = preg_split('/(?<=[.!?])\s+/', $originalText);

// 过滤掉可能存在的空字符串(避免文本首尾空白导致的无效元素)
$cleanedSentences = array_filter($sentenceArray, function($item) {
    return trim($item) !== '';
});

// 提取数组中的前五句
$topFiveSentences = array_slice($cleanedSentences, 0, 5);

// 输出结果(也可以根据需求改成其他处理方式)
foreach ($topFiveSentences as $key => $sentence) {
    echo "第" . ($key + 1) . "句:" . $sentence . PHP_EOL;
}
?>

代码说明

  1. preg_split正则分割:/(?<=[.!?])\s+/是一个正向后顾断言,意思是“匹配前面是.!?的空白字符”,这样分割出来的每个元素都是完整的句子(包含末尾的标点)。
  2. array_filter清理空元素:防止文本开头、结尾或者分割后出现空字符串,保证数组里都是有效句子。
  3. array_slice提取前五句:直接从清理后的数组中截取前5个元素,简单高效。

运行这段代码后,你会得到如下结果:

第1句:西塞罗曾发表著名演说反对他的政治对手卢修斯·塞尔吉乌斯·喀提林。
第2句:今天天气很好!
第3句:有时《反喀提林第一演说》会被用作样本:quo usque tandem abutere, Catilina, patientia nostra?
第4句:Quam diu etiam furor iste tuus nos eludet?
第5句:西塞罗在写信。

内容的提问来源于stack exchange,提问作者KvinT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:56:51