首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有特定大小和边界检测的句子

具有特定大小和边界检测的句子
EN

Stack Overflow用户
提问于 2012-07-09 04:22:02
回答 2查看 112关注 0票数 0

这是我的问题:我有一个大字符串(接近8000字符),我想要两样东西:

  1. 检测像'.‘这样的句子边界。和
  2. 有不超过600个字符的句子

我知道,在某些情况下,两者都是不可能的。在这种情况下,找到一个空格并分割句子。

这个解决方案由 ridgerunner为条件1工作像一个魅力,请参阅原始链接(http://goo.gl/PqI6d),但它经常输出的句子超过600个字符。有光吗?提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2012-07-09 05:43:14

您可能会更好地匹配字符串而不是。匹配的正则表达式如下所示:

(.{0,600}?\.)|(.{0,600}(?=\ ))

简而言之,首先要在句点之前寻找尽可能小的字符串。如果没有字符串,则查找尽可能长的字符串,然后是空格。然后下一场比赛就会从你停下来的地方开始。

注意,这是泛型正则表达式。您的php实现可能会有所不同。

票数 0
EN

Stack Overflow用户

发布于 2012-07-09 15:14:19

这是一个很好的例子。请看看我是不是漏掉了什么。下面是使用您的建议从我的字符串和输出摘录。

代码语言:javascript
运行
复制
<?php 
    $ptn = "/(?:[^.]{1,600}(?: |\.)|\w{600,}(?: |\.)?)/";
    $str = "Amblyopia occurs when the nerve pathway from one eye to the brain does not develop during childhood. This occurs because the abnormal eye sends a blurred image or the wrong image to the brain. This confuses the brain, and the brain may learn to ignore the image from the weaker eye. Strabismus is the most common cause of amblyopia. There is often a family history of this condition. The term "lazy eye" refers to amblyopia, which often occurs along with strabismus. However, amblyopia can occur without strabismus and people can have strabismus without amblyopia.First, any eye condition that is causing poor vision in the amblyopic eye (such as cataracts) needs to be corrected. Children with a refractive error (nearsightedness, farsightedness, or astigmatism) will need glasses. Next, a patch is placed on the normal eye. This forces the brain to recognize the image from the eye with amblyopia. Sometimes, drops are used to blur the vision of the normal eye instead of putting a patch on it. Children whose vision will not fully recover, and those with only good eye due to any disorder should wear glasses with protective polycarbonate lenses. Polycarbonate glasses are shatter- and scratch-resistant. Children who get treated before age 5 will usually recover almost completely normal vision, although they may continue to have problems with depth perception. Delaying treatment can result in permanent vision problems. After age 10, only a partial recovery of vision can be expected. Early recognition and treatment of the problem in children can help to prevent permanent visual loss. All children should have a complete eye examination at least once between ages 3 and 5. Special techniques are needed to measure visual acuity in a child who is too young to speak. Most eye care professionals can perform these techniques.";
    preg_split($ptn, $str, -1, PREG_SPLIT_NO_EMPTY);
    print_r($result);
    ?>

结果:我需要我的字符串中小于600字符的句子。

代码语言:javascript
运行
复制
 Array
(
[0] => childhood.
[1] => brain.
[2] => eye.
[3] => amblyopia.
[4] => condition.
[5] => strabismus.
[6] => amblyopia.
[7] => corrected.
[8] => glasses.
[9] => eye.
[10] => amblyopia.
[11] => it.
[12] => lenses.
[13] => scratch-resistant.
[14] => perception.
[15] => problems.
[16] => expected.
[17] => loss.
[18] => 5.
[19] => speak.
[20] => techniques
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11389048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档