正则表达式找到段落的结尾

时间:2012-07-07 14:43:31

标签: regex

我正在解析文本,并删除了分段符。我需要一个正则表达式来定位以标点符号(句号,问题等)结尾的任何句子,并且在下一个句子开始之前没有空格。然后我接受并插入两个换行符。不幸的是,到目前为止,我所使用的正则表达式太贪婪了,并且正在抓住URL。

preg_replace('/(?<!\.)\.(?!(\s|$|\,|\w\.))/', '.<br/><br/> ', $string);

示例文字:

  

批准的来源是xxxx xxx。请求是XXX,将在本通知中提供的链接中提供。见http://www.mysite.com。此请求的硬拷贝不可用。规格,图纸或图纸不可用。所有负责人都可以提交报价,如果及时收到报价,则必须以电子方式提交报价。

     

最终期望结果:

     

批准的来源是xxx xxxx。

     

请求是XXX,可通过本通知中提供的链接获取。此请求的硬拷贝不可用。见http://www.mysite.com。规格,图纸或图纸不可用。

     

所有负责的消息来源都可以提交报价,如果及时收到,则应予以考虑。

     

报价必须以电子方式提交。

     

由于

1 个答案:

答案 0 :(得分:0)

(?<!w{3})[\.\?](?=\S)(?!com)

假设您的所有URL都将以www..com开头/结尾,这将阻止其匹配,同时保留所有.和{ {1}}后面有非空格。您必须将匹配项替换为?,而不仅仅是.<br><br>

Play with the regex here