正则表达式 – 如何从输入中获取句号?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 如何从输入中获取句号?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在文本中检测句子边界似乎很难.引号如.!?可能用于分隔句子但不准确,因为可能有歧义的词和引文,如美国或教授或博士我正在研究Tperl regex库和正则表达食谱 Jan Goyvaerts但我不知道如何编写检测表达式句子?

在delphi中使用Tperlregex可能是比较准确的表达式?

谢谢

首先,您可能需要达到自己对“句子”的定义,然后实现该定义.例如,怎么样:
He said: "It's OK!"

是一两句话吗?一般答案是无关紧要的.决定是否要将其解释为一个或两个句子,并相应地进行.

其次,我不认为我会使用正则表达式.相反,我会扫描每个字符并尝试检测序列.一个句子本身可能不足以划分一个句子,但是一个句子后跟空格或回车(或字符串的结尾)可能就是这样.这会立即让你淘汰美国(没有空格的时期).

对于Prof. a Dr.这样的常见缩写,创建一个字典可能是一个好主意 – 也许可以由用户编辑,因为每种语言都有自己的一组常用缩写.

每种语言也都有自己的标点符号规则,这可能会影响标点符号的解释方式.例如,英语倾向于在括号内放置句号(如此),而波兰语则相反(如此).相同的区别将适用于双引号,单引号(某些语言根本不使用它们,有时它们与撇号等无法区分).您的规则可能必须特定于语言,至少部分是这样.

最后,你可能会用人类的方式来界定句子,但总会有一些案例可以抛出分析.例如,假设您有一个识别“Prof.”的字典.作为缩写,你打算做什么

Most people called him Professor Jones,but to me he was simply The Prof.

即使你有一个跟随并以大写字母开头的另一个句子,这仍然无法帮助你知道句子在哪里结束,因为它可能也是

Most people called him Professor Jones,but to me he was simply Prof. Bill.

猜你在找的正则表达式相关文章