1

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

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

示例文本:

批准的来源是 xxxx xxx。征集是 XXX,将在本通知中提供的链接上提供。请参阅http://www.mysite.com。本征集的硬拷贝不可用。规格、计划或图纸不可用。所有负责的来源都可以提交报价,如果及时收到,应予以考虑。报价必须以电子方式提交。

最终预期结果:

批准的来源是 xxx xxxx。

征集是 XXX,可通过本通知中提供的链接获得。本征集的硬拷贝不可用。请参阅http://www.mysite.com。规格、计划或图纸不可用。

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

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

谢谢

4

1 回答 1

0

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

假设您的所有s 都将以andURL开头/结尾,这将阻止它匹配,同时保留所有匹配并且在它们之后具有非空格。您将不得不替换您的匹配项,而不仅仅是.www..com.?.<br><br><br><br>

在这里玩正则表达式

于 2012-07-07T14:59:10.017 回答