在 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 SDK API 为页面/网址“点赞”?

    我正在使用这段代码 facebook gt api me likes post array url gt http www google com 我收到以下错误 Fatal error Uncaught OAuthException 200
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • 无法在“System.String”类型上的多个长度相等的构造函数之间进行选择

    尝试解析类型时出现以下错误 无法在 System String 类型上的多个长度相等的构造函数之间进行选择 注册组件时 使用UsingConstructor 配置方法显式选择构造函数 该类型有 1 个构造函数 该构造函数采用IReposit
  • 负载平衡集群中的 PHP 会话 - 如何?

    好的 我得到了这个完全罕见的负载平衡 PHP 网站的独特场景 令人遗憾的是 它过去没有进行负载平衡 现在我们开始遇到问题 目前唯一的问题是 PHP 会话 当然 一开始没有人想到这个问题 因此 PHP 会话配置保留为默认值 因此 两台服务器都
  • 在 Objective-C 中比较 2 个字符串

    我写了以下代码 if depSelectedIndice gt 1 comSelectedIndice gt 1 NSLog depart elemet d depSelectedIndice NSLog depart elemet d c
  • 为什么验证不起作用并跳转到另一个页面?

    我写了一个customer display php来验证数据 到目前为止只有名字 但无论名字字段是否为空 网页都会跳转到customer search php并且没有更改数据库中的信息 为什么
  • 在 Symfony 序列化中更改序列化属性名称

    我正在使用 Symfony 序列化器 效果很好 use Symfony Component Serializer Annotation Groups Groups default notification public function g
  • 如何使用 Twig 的属性函数访问嵌套对象属性

    我试图使用一个树枝变量来访问另一个树枝变量的属性 直到我找到 属性 函数为止 该变量才起作用 除了需要访问嵌套属性的情况外 效果很好 当包含属性的变量实际上是对象 属性时 它不起作用 例如 attribute object1 variabl
  • 将 Google 信任徽章添加到 Magento

    我正在尝试将 Google Trust Badge 添加到我的 magento 商店 我尝试在 Magento 网站上搜索扩展程序 但找不到 我是否需要将以下代码粘贴到产品和结账页面 还是必须对其进行更改 如果有人能引导我走向正确的方向 我
  • Magento - 检查 cms 页面

    我想通过 php 检查页面是否是 Magento 中的 cms page 我需要不同的 cms 页面面包屑 所以我尝试在一个条件下做到这一点 但我不知道如何或在哪里查看 到目前为止 这是我的 breadcrumbs phtml p some
  • Java中字符串中特殊字符的替换

    Java中如何替换字符串 E g String a adf sdf 如何替换和避免特殊字符 您可以删除除此之外的所有字符可打印的 ASCII 范围 http en wikipedia org wiki ASCII ASCII printab
  • phpunit测试调用其他需要mock的类方法的方法

    我正在尝试创建一个非常标准的单元测试 在其中调用一个方法并断言它的响应 但是我正在测试的方法调用同一类中的另一个方法 该方法做了一些繁重的工作 我想模拟该方法 但仍按原样执行我正在测试的方法 仅使用从调用另一种方法返回的模拟值 我简化了示例
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 从支付网关重定向回时用户会话丢失

    我已将 Cyber source 配置为我的支付网关 我能够导航到 cybersource 并进行付款 并能够成功重定向回该网站 我也可以取消付款并重定向回我的网站 我收到来自支付网关的响应 但是 用户在从支付网关重定向回来时会被注销 我正
  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2

随机推荐

  • 通过 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