查找并替换所有未跟随标点符号或空格的句点

时间:2016-01-19 18:17:14

标签: php regex

我正在尝试使用PHP格式化用户输入,并且经常遇到句子之间没有空格的问题(即在关闭期之后)。这会产生问题,因为此用户输入得到专业打印。如果我们在手动QC过程中错过了这些,那么公司需要花钱,因为它必须修复并重新打印。

我需要开发一种方法来搜索给定文本字符串中的所有句点,确定它后面是否紧跟一个字母或数字,如果是,则在句点后插入一个空格。如果句点之后是其他标点符号(即引号,另一个句点如省略号)或后跟空格,我想不管它。

1 个答案:

答案 0 :(得分:1)

此解决方案会在每个句点后面没有空格或数字时添加空格。

$str = 'This is a sentence.It should sometimes have spaces. Sometimes it does not.But: EUR 0.3.The number should not, this one should neither.!it.does.not.';
$result = preg_replace('/(\.|!|\?)([^ !?\d])/si', '$1 $2', $str);
echo $result;

......会给:

This is a sentence. It should sometimes have spaces. Sometimes it does not. But: EUR 0.3. The number should not, this one should neither.! it. does. not.