在 PHP 中将段落分解为句子

2024-01-08

我一直在使用

explode(".",$mystring)

将段落拆分成句子。然而,这不包括用不同标点符号结束的句子,例如! ? : ;

有没有办法使用数组而不是单个字符作为分隔符?或者还有另一种使用各种标点符号进行拆分的巧妙方法吗?

I tried

explode(("." || "?" || "!"),$mystring)

希望如此,但没有成功...


您可以使用preg_split() http://php.net/preg_split结合一个PCRE 前瞻条件 http://www.regular-expressions.info/lookaround.html每次出现后分割字符串., ;, :, ?, !, .. 同时保持实际标点符号完整:

Code:

$subject = 'abc sdfs.    def ghi; this is [email protected] /cdn-cgi/l/email-protection! asdasdasd? abc xyz';
// split on whitespace between sentences preceded by a punctuation mark
$result = preg_split('/(?<=[.?!;:])\s+/', $subject, -1, PREG_SPLIT_NO_EMPTY);
print_r($result);

Result:

Array
(
    [0] => abc sdfs.
    [1] => def ghi;
    [2] => this is an.e[email protected] /cdn-cgi/l/email-protection!
    [3] => asdasdasd?
    [4] => abc xyz
)

您还可以添加缩写黑名单(Mr.、Mrs.、Dr.、..)not通过插入否定的lookbehind断言将其分成自己的句子:

$subject = 'abc sdfs.   Dr. Foo said he is not a sentence; asdasdasd? abc xyz';
// split on whitespace between sentences preceded by a punctuation mark
$result = preg_split('/(?<!Mr.|Mrs.|Dr.)(?<=[.?!;:])\s+/', $subject, -1, PREG_SPLIT_NO_EMPTY);
print_r($result);

Result:

Array
(
    [0] => abc sdfs.
    [1] => Dr. Foo said he is not a sentence;
    [2] => asdasdasd?
    [3] => abc xyz
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PHP 中将段落分解为句子 的相关文章

  • Facebook 扩展权限

    更新2 好的 通过更改使其 有点 工作 loginUrl facebook gt getLoginUrl array canvas gt 1 fbconnect gt 0 req perms gt publish stream next g
  • 从 Symfony2 中的 http_basic auth 注销

    每当我去 admin logout 我已正确重定向到项目的根目录 但在访问时仍处于登录状态 admin 因为没有提示我输入凭据 这是我的配置 安全 yml security firewalls admin area pattern admi
  • 需要在c#中的字符串中的“单词”之后获取一个字符串

    我在 C 中有一个字符串 我必须在字符串中找到特定的单词 code 并且必须获取单词 code 之后的剩余字符串 该字符串是 错误描述 code 1 所以我必须找到这个词code在上面的字符串中 我必须获取错误代码 我见过正则表达式 但现在
  • 如何将JS/CSS文件包含到Slim框架的模板中?

    我正在使用 Slim 框架开发一个简单的网络应用程序 我遇到了一个可能很简单的问题 我想将静态文件 CSS 和 Javascript 包含到我的模板中 我的项目文件夹结构如下 index php lt where all the routi
  • CodeIgniter/PHP - 从视图内调用视图

    基本上 对于我的网络应用程序 我正在尝试更好地组织它 目前 每次我想加载页面时 我都必须从控制器中执行此操作 如下所示 this gt load gt view subviews template headerview this gt lo
  • 如何在 SQLite 中获取最后插入的 ID?

    SQLite 中是否有任何内置函数可以获取最后插入的行 ID 例如 在 mysql 中我们有LAST INSERT ID 这种功能 对于 sqlite 任何可用于执行相同过程的函数 请帮我 Thanks SQLite 这可以使用SQLite
  • Java 中的正则表达式,\\s 与 \\s+

    下面两个表达式有什么区别 x x replaceAll s x x replaceAll s 第一个匹配单个空格 而第二个匹配一个或多个空格 它们是所谓的正则表达式量词 它们执行像这样的匹配 取自文档 http docs oracle co
  • 如何接收发送到 twilio 号码的短信

    我在 twilio 创建了一个免费帐户 用于通过我的网站发送短信 注册后 我得到了一个 twilio 号码 例如 XXX XXX XXXX 我可以向手机号码发送消息 但我不知道如何使用这个 twilio 号码接收短信 请帮我解决这个问题 T
  • JavaScript 支持逐字字符串吗?

    在 C 中 您可以像这样使用逐字字符串 server share file txt JavaScript中有类似的东西吗 模板字符串支持换行 so you can do this if you want https developer mo
  • PHP正则表达式替换链接url

    我需要添加href 之前http 如果这http 不遵循href or src 以下代码部分有效 部分意味着它考虑 a href 只但不src a s i a href target blank gt 0 a str 预先感谢各位的回复 s
  • 解析格式化字符串

    我正在尝试创建一个通用格式化程序 解析器组合 示例场景 我有一个 string Format 的字符串 例如var format 0 1 我有一个用于输入的对象 字符串 数组 例如var arr new asdf qwer 我正在使用格式字
  • 项目链接在 Wamp 服务器上不起作用

    我正在另一台计算机上安装 Wamp 服务器来运行中型数据库和 UI 我已成功阻止 IIS 并将服务器路由到 Localhost 8080 但是每当我尝试从 localhost 主页访问我的项目时 在 www 文件中 我被重定向到页面未找到错
  • Java:线程“主”中的异常 java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:

    我是初学者 谁能帮我弄清楚我们在做什么 我正在尝试读取字符串并将字符串的每个字符存储在数组中 import java util Scanner public class CoreMainDigitExtractor static Scann
  • 如何使用 PATCH 更新简单的数据库字段?

    我是 php 和 API 的新手 我正在尝试学习这些方法 但我无法执行 PATCH 或 PUT 来更新我的简单 mysql 数据库 我使用了以下代码 if isset PATCH con mysqli connect localhost r
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • 将 Base64 字符串转换为图像文件? [复制]

    这个问题在这里已经有答案了 我正在尝试将我的 Base64 图像字符串转换为图像文件 这是我的 Base64 字符串 http pastebin com ENkTrGNG http pastebin com ENkTrGNG 使用以下代码将
  • PHP + MySQL 队列

    我需要一个充当队列的简单表 我的 MySQL 服务器限制是我不能使用 InnoDB 表 只能使用 MyISAM 客户 工人将同时工作 他们每次都需要接受不同的工作 我的想法是执行以下操作 伪代码 job lt SELECT FROM que
  • MVC 框架中的缓存策略?

    我编写了自己的小型 PHP MVC 框架 现在正在探索 PHP MVC 框架中的缓存策略 我正在考虑可以缓存什么 在哪里以及如何缓存 我的框架是简单的MVC框架 我有前端控制器 它启动应用程序 注册类自动加载 设置 php 运行时指令 最后
  • 使用 yaml 路由描述时如何在运行时获取 Symfony2 中的路由名称?

    在这里你可以找到我的n关于 Symfony2 的第一个问题 我正在与一个分页捆绑 https github com makerlabs PagerBundle wiki使用中提供的路由名称routing yml文件 从我的角度来看 这种方法
  • 在 Elasticsearch php API 中使用多种类型或索引

    我想使用查询多种类型和索引Elasticsearch PHP API 但我不知道怎么办 我应该将类型和索引的数组传递给 params params index index array of indices params type types

随机推荐

  • 通过 socket.io 1.0 进行现场音频

    来自socket io网站 二进制流 从 1 0 开始 可以来回发送任何 blob 图像 音频 视频 我现在想知道 这是否不能成为我最近想要实现的目标的解决方案 我实际上正在寻找一种方法 如何将实时音频流从 A 即麦克风输入 广播到连接到我
  • 使用 Sphinx 生成 PHP 代码文档? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Sphinx 是一个 Python 库 用于从一组 ReST 格式的文本文件生成漂亮的文档 不是用于全文检索的工具 我也完全了解 do
  • 在 shell 脚本中将一个文件中的 key:value 替换到另一个文件中?

    我有一个包含键值条目的 数据库文件 还有另一个文件 其中键出现在其他内容中 现在我想用我的键值文件的值替换该关键字 例子 有一个文件 keys txt 其中包含 关键字空间 url name1 https maps google com s
  • set 与 unordered_set 的最快迭代

    在我的申请中 我有以下要求 数据结构将仅使用一些值 不是键 值对 填充一次 这些值可能会重复 但我希望数据结构只存储它们一次 我将迭代上面创建的数据结构的所有元素 100 次 元素在迭代中出现的顺序并不重要 约束 1 表明我必须使用 set
  • 将电源计划更改为高性能

    如何将本地计算机上的电源计划更改为高性能 并更改选项 之后关闭显示 我想设置为从不 我找到了远程计算机的所有示例 您可以通过调用来做到这一点activate方法中的Win32 PowerPlan class powerPlan Get Wm
  • 如何获取 Django 视图集中的 API 参数?

    我正在构建一个公开 REST API 的 Django 应用程序 用户可以通过该 API 查询我的应用程序的模型 我正在按照说明进行操作here http www django rest framework org tutorial qui
  • 在 CDI 实现项目中包含空 beans.xml 的目的是什么?

    我在用weld CDI 的 RI 作为我的 JSF EJB JPA Web 应用程序中的依赖项注入组件 我看到在我的项目中我们有空的 beans xmlMETA INF beans xml in ejb jar and WEB INF be
  • 使用 JAX-RS 和 Jackson 将 JPA 实体转换为 REST 表示的最佳方法

    我正在寻找一种将一些 JPA 实体导出到 REST API 的方法 但不是每次我想根据入口点共享一些特定字段时都发送整个实体 这是一个小例子 假设我们有一个Author具有很少字段的类 Entity public class Author
  • YouTube iframe api 未触发 onYouTubeIframeAPIReady

    我已经与 youtube iframe api 斗争了一段时间了 不知怎的方法onYouTubeIframeAPIReady并不总是被触发 从症状来看 似乎是负载问题 检查器中没有显示任何错误 这是我的代码 HTML div div
  • Emscripten 找不到 cmake 的路径

    我已经将说明仔细阅读了好几遍 https kripken github io emscripten site docs getting started downloads html 查了无数论坛 还是无法解决这个问题 我正在运行 Windo
  • 是否可以用现有图中的常量替换占位符?

    我有一张经过训练的模型的冻结图 它有一个tf placeholder我总是向其提供相同的价值 我想知道是否可以将其替换为tf constant反而 如果是这样的话 任何例子将不胜感激 编辑 这是代码的样子 以帮助可视化问题 我正在使用 由其
  • WCF:从另一方收到不安全或安全错误的错误

    我创建了一项具有 aspnet 角色和安全性的 WCF 服务 当我在一个网站上使用它并尝试检查是否使用正确的用户名和密码时 它工作得很好 但是如果用户名和密码不正确 它会给我一个错误 从对方收到不安全或不正确安全的故障 派对 有关错误代码和
  • 从终端构建、部署和运行 iphone 模拟器

    我是 mac 和 xcode 的新手 请告诉我 iphone xcodeproject 在 xcode IDE 之外执行以下任务的过程 使用 xcodebuild 命令构建完成 在模拟器中部署 在模拟器中运行 如何使用 ant Apples
  • 默认参数的词法声明问题[重复]

    这个问题在这里已经有答案了 我在定义一些时遇到一些问题功能声明后class 我用的是默认的params之前在声明函数时 但我不知道是否也可以使用函数或类作为默认参数 我的代码是这样的 const Matrix class some code
  • Jquery .on 与双击事件

    为什么这会起作用 document on dblclick areaA tr has td function e code here 这并不 areaA tr has td on dblclick function e Code here
  • 为什么匿名类中只能访问最终变量?

    a只能在这里最终决定 为什么 我怎样才能重新分配a in onClick 方法而不将其保留为私有成员 private void f Button b final int a b addClickHandler new ClickHandle
  • 为什么缺少 object.__getattr__ ?

    为什么object似乎没有 getattr 方法 它定义了两者 setattr and delattr 这三个都不需要吗 gt gt gt object setattr
  • CNContact 标识符中的“:ABPerson”字符串是什么?

    我的 iOS 应用程序会时不时地检查联系人并将新联系人导入到自己的数据库中 我检查了该联系人 它已经存在identifier字段 通常由 UUID 填充 CNContactStore store CNContactStore new sto
  • 关闭 Tkinter 后运行 wxPython

    我们有两个应用程序 一个使用 Tkinter 界面开发 另一个使用 wxPython 构建 两者都相当复杂 运行完 Tkinter 应用程序后 我希望在选择 Tkinter 应用程序中的按钮后运行 wxPython 应用程序 是否可以切换事
  • 在 PHP 中将段落分解为句子

    我一直在使用 explode mystring 将段落拆分成句子 然而 这不包括用不同标点符号结束的句子 例如 有没有办法使用数组而不是单个字符作为分隔符 或者还有另一种使用各种标点符号进行拆分的巧妙方法吗 I tried explode