我正在解析文本,并删除了分段符。我需要一个正则表达式来定位以标点符号(句号,问题等)结尾的任何句子,并且在下一个句子开始之前没有空格。然后我接受并插入两个换行符。不幸的是,到目前为止,我所使用的正则表达式太贪婪了,并且正在抓住URL。
preg_replace('/(?<!\.)\.(?!(\s|$|\,|\w\.))/', '.<br/><br/> ', $string);
示例文字:
批准的来源是xxxx xxx。请求是XXX,将在本通知中提供的链接中提供。见http://www.mysite.com。此请求的硬拷贝不可用。规格,图纸或图纸不可用。所有负责人都可以提交报价,如果及时收到报价,则必须以电子方式提交报价。
最终期望结果:
批准的来源是xxx xxxx。
请求是XXX,可通过本通知中提供的链接获取。此请求的硬拷贝不可用。见http://www.mysite.com。规格,图纸或图纸不可用。
所有负责的消息来源都可以提交报价,如果及时收到,则应予以考虑。
报价必须以电子方式提交。
由于
答案 0 :(得分:0)
(?<!w{3})[\.\?](?=\S)(?!com)
假设您的所有URL
都将以www.
和.com
开头/结尾,这将阻止其匹配,同时保留所有.
和{ {1}}后面有非空格。您必须将匹配项替换为?
,而不仅仅是.<br><br>
。