java - Java 正则表达式检测句子结尾但忽略(num)(句点),例如 15
问题描述
试图在java中找到一个好的正则表达式来检测句子结束。主要问题是如果有一个数字然后是句号,它会将其检测为句子结尾(参见演示链接)。但就我而言,我更希望它不将其识别为句子结尾,即使在某些情况下可能是这样。我在文档中更常见的是部分标题,如下所示:
12. the end of the world 13. world didnt end 14. nope it did
就我而言,它将许多简单的标题列表拆分为我不想要的句子。
此处发布的解决方案的附加问题:
建议的解决方案是: [!?.]+(?=$|\s)
See demo: http://regex101.com/r/lS5tT3/15
问题是如果有一个章节标题,如15. 那么它会错误地将其视为句子结尾。在演示中尝试此文本,您将在第一句话中看到问题:
This is the f!!rst *15.* the best sentence! Is this the second one? The third 32.5 sentence is here... And the fourth one!!
如果有任何正则表达式高手可以帮助在逻辑上添加,如果句号空间不是句子结尾,而是前面有一个非常有帮助的数字
解决方案
此正则表达式与一些缩写一起使用并正确识别句子结束标记。不幸的是,对于 java string.split 我需要这个函数的反函数......
([!?]+(?=$|\s))|((?<![\d])(?<!etc)(?<!Mr)(?<!mr)(?<!i.e)(?<!Dr)(?<!dr)(?<!Mrs)(?<!mrs)(?<![ A-Z])(?<!Ms)(?<!ms)(?<!Phd)(?<!u\.s)(?<!U\.S)(?<!\.)[.]{1}(?=$|\s))|
推荐阅读
- jupyter-notebook - Jupyter Notebook 对象没有属性
- oracle - OCI ObjectStorage 需要 CopyObject 的权限吗?
- php - 如何使网站对用户 PHP 不可用?
- vb.net - 无法在 Zebra 打印机上打印表格
- ansible - ansible diff忽略行的顺序
- git - 从本地分支,git push 到另一个远程分支
- javascript - 在文本框上绑定gridview onkeypress
- ios - UIStackView 无法满足的自动布局约束
- node.js - TypeError:无法读取未定义的属性“元素”
- postgresql - 创建一个物化视图,该视图继承进行视图调用的用户的权限